java MongoDB(二)复杂查询

前言

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

1、数据结构

集合:firstCollectio

数据内容:

{ "_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、连接数据库,拿到集合firstCollectio

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查询(一)简单查询》内容就可以组合成我们想要的各种结果的查询条件了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 目录 查询操作 集合查询方法 find() 查询内嵌文档 查询操作符(内含 数组查询) "$gt" 、"$gte"...
    彩虹之梦阅读 1,057评论 0 1
  • //使用配置文件启动(如未设置环境变量需要在安装路径的bin文件夹下运行)mongod --config c:\m...
    Anon_0507阅读 517评论 0 0
  • 学习《MongoDB 权威指南·第2版》的笔记,结合 MongoDB 官方最新文档(v3.6),简单记录一些概念、...
    小鱼爱小虾阅读 6,093评论 0 5
  • 我俩又来到这赴约,虽说来过N多次一见面还是要边拍边聊,我们互相报告着自己的情况,侃着北方的雾霾和房价,娜问我...
    傅新淼阅读 265评论 1 0