美文网首页
Java使用MongoDB

Java使用MongoDB

作者: nknight | 来源:发表于2017-12-29 17:42 被阅读0次

    1.初始化MongoTemplate

    // 设置IP和端口
    ServerAddress serverAddress = new ServerAddress(“127.0.0.1”, 27017);


    MongoClientOptions.Builder builder = new Builder();
    // 设置当链接空闲时,空闲线程池中最大链接数
    builder.connectionsPerHost(100);


    // 设置一个线程等待链接可用的最大等待毫秒数
    builder.threadsAllowedToBlockForConnectionMultiplier(10);


    // 创建客户端并设置数据库
    MongoClient mongo = new MongoClient(serverAddress, builder.build());
    MongoTemplate mongoTemplate = new MongoTemplate(mongo, DB_NAME);


    2.MongoTemplate实现增删改查

    查询
    // 设置查询条件
    Criteria cri = new Criteria();


    (1)and查询

    //相等 * = VALUE
    cri.and(KEY).is(VALUE);


    // 不相等 * != VALUE --> $ne
    cri.and(KEY).ne(VALUE);


    // 大于等于 * >= VALUE --> $gte
    cri.and(KEY).gte(VALUE);


    //大于 * > VALUE --> $gt
    cri.and(KEY).gt(VALUE);


    // 小于等于 * <= VALUE --> $lte
    cri.and(KEY).lte(VALUE);


    //小于 * < VALUE --> $lt
    cri.and(KEY).lt(VALUE);


    // 模糊查询 * like VALUE
    cri.and(KEY).regex((String) VALUE,"i"); // 加上“i”表示不区分大小写比较


    // 在其中 * in VALUES --> $in
    cri.and(KEY).in((List<Object>) VALUES);


    // 不在其中 * not in VALUES --> $nin
    cri.and(KEY).nin((List<Object>) VALUES);


    // 两值之间包括两值 VALUE1 <= * <= VALUE2
    cri.and(KEY).gte(VALUE1).lte(VALUE2);


    // 是否包含某字段 VALUE为true或false --> $exists
    cri.and(KEY).exists((Boolean) VALUE);


    (2) or查询

    List<Criteria> criteriaList = new ArrayList<>();
    // 将or查询条件添加到list
    criteriaList.add(Criteria.where(KEY).is(VALUE));
    criteriaList.add(Criteria.where(KEY).ne(VALUE));
    ....
    // 使用 orOperator(Criteria... criterias)
    cri.orOperator(criteriaList.toArray(new Criteria[criteriaList.size()]));


    // 将条件传进查询实例
    Query query = new Query(cri);


    // 设置排序条件
    Sort sort = query.sort();
    sort.on(KEY, Order.ASCENDING); // 根据KEY ASC正序
    或sort.on(KEY, Order.DESCENDING); // 根据KEY DESC逆序


    // 根据query查询collection下的记录数
    mongoTemplate.count(query, collection);


    // 根据query查询collection下的记录并封装成class的实体返回
    mongoTemplate.find(query, clazz collection);


    // 查询collection下所有记录并封装成class的实体返回
    mongoTemplate.findAll(clazz , collection);


    删除
    // 根据query删除collection下的记录
    mongoTemplate.remove(query, collection);


    增改
    // 保存或更新实体
    mongoTemplate.save(obj, collection);


    操作集合
    // 根据集合名创建集合
    mongoTemplate.createCollection(collection);


    // 根据集合名删除集合
    mongoTemplate.dropCollection(collection);


    // 根据集合名获取集合对象
    mongoTemplate.getCollection(collection);

    相关文章

      网友评论

          本文标题:Java使用MongoDB

          本文链接:https://www.haomeiwen.com/subject/wchwgxtx.html