zoukankan      html  css  js  c++  java
  • java MongoDB查询(二)复杂查询

    前言

            在上篇《java MongoDB查询(一)简单查询》中我们简单了解了下查询,但是仅仅有那些查询是不够用的,还需要复杂的查询,这篇就这点进行叙述。

    1、数据结构

            集合:firstCollection

            数据内容:

            { "_id" : ObjectId("55adba52fa1f3cf038c2aea6"), "name" : "user0", "age" : 22, "sex" : 0 }

            { "_id" : ObjectId("55adba52fa1f3cf038c2aea7"), "name" : "user1", "age" : 23, "sex" : 1 }

            { "_id" : ObjectId("55adba52fa1f3cf038c2aea8"), "name" : "user2", "age" : 24, "sex" : 0 }

            { "_id" : ObjectId("55adba52fa1f3cf038c2aea9"), "name" : "user3", "age" : 25, "sex" : 1 }

            { "_id" : ObjectId("55adba52fa1f3cf038c2aeaa"), "name" : "user4", "age" : 26, "sex" : 0 }

            { "_id" : ObjectId("55adba52fa1f3cf038c2aeab"), "name" : "user5", "age" : 27, "sex" : 1 }

    2、连接数据库,拿到集合firstCollection

            MongoClient mClient = new MongoClient("10.211.55.8");

            DB db = mClient.getDB("test");

            DBCollection collection = db.getCollection("firstCollection");

    3、与查询

            操作符:$and

            场景:查询age大于23,并且sex为1的对象

            查询条件Json内容:

            {"$and":[{"age":{"$gt":23}},{"sex":1}]}

            查询条件Java内容:

            BasicDBObject ageObj = new BasicDBObject("age",new BasicDBObject("$gt",23));

            BasicDBObject sexObj = new BasicDBObject("sex",1);

            BasicDBObject andObj = new BasicDBObject("$and",Arrays.asList(ageObj,sexObj));

            执行过程:

            Cursor cursor = collection.find(andObj);

            while(cursor.hasNext()){

                    DBObject obj = cursor.next();

                    System.out.println(obj.toString());

            }

    4、或查询

            操作符:$or

            场景:查询name为user2,或者name为user3的对象

            查询条件Json内容:

            {"$or":[{"name":"user2"},{"name":"user3"}]}

            查询条件Java内容:

            BasicDBObject user2Obj = new BasicDBObject("name","user2");

            BasicDBObject user3Obj = new BasicDBObject("name","user3");

            BasicDBObject orObj = new BasicDBObject("$or",Arrays.asList(user2Obj,user3Obj));

            执行过程:

            Cursor cursor = collection.find(orObj);

            while(cursor.hasNext()){

                    DBObject obj = cursor.next();

                    System.out.println(obj.toString());

            }

    5、总结

            通过与或的查询,我们了解了查询条件组合的方式,通过这种方式,再联系上篇《java MongoDB查询(一)简单查询》内容就可以组合成我们想要的各种结果的查询条件了

  • 相关阅读:
    jQuery的版本兼容问题
    web页面锁屏初级尝试
    mvc5之文件上传
    魔方基础入门教程
    XCube和X组件的入门级使用教程
    蔬菜大棚监控与管理 1.0版本(未完善)
    蔬菜大棚 数据库设计 0.5版本()
    记录一段存储过程
    MPU9250九轴陀螺仪--读接口数据
    MPU9250九轴陀螺仪--连接MPU9250
  • 原文地址:https://www.cnblogs.com/luoaz/p/4692716.html
Copyright © 2011-2022 走看看