前言

MongoDB的java驱动提供了查询的功能,查询条件也是bson对象,这篇就看下怎么进行简单的数据查询

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、查询name为user1的对象

查询条件Json内容:

{"name": "user1"}

查询条件Java内容:

BasicDBObject queryObject = new BasicDBObject("name","user1");

执行过程:

DBObject obj = collection.findOne(queryObject);

这样就拿到了name为user1的对象了

4、查询name包含user的对象

这样模糊查询,也就类似于like查询是通过正则表达式来完成的

查询条件Json内容:

{“name”:/user/}

查询条件Java内容:

Pattern queryPattern = Pattern.compile("user", Pattern.CASE_INSENSITIVE);

BasicDBObject queryObject = new BasicDBObject("name",queryPattern);

执行过程:

Pattern queryPattern = Pattern.compile("user", Pattern.CASE_INSENSITIVE);

BasicDBObject queryObject = new BasicDBObject("name",queryPattern);

Cursor cursor = collection.find(queryObject);

while(cursor.hasNext()){

DBObject obj = cursor.next();

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

}

5、查询年龄大于24的对象

查询条件Json内容:

{"age":{"$gt":24}}

查询条件Java内容:

两个Bson对象嵌套

BasicDBObject gt = new BasicDBObject("$gt",24);

BasicDBObject queryObject = new BasicDBObject("age",gt);

执行过程:

BasicDBObject gt = new BasicDBObject("$gt",24);

BasicDBObject queryObject = new BasicDBObject("age",gt);

Cursor cursor = collection.find(queryObject);

while(cursor.hasNext()){

DBObject obj = cursor.next();

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

}

备注:

$gt:>

$gte:>=

$eq:        =

$ne:        !=

$lt:        <

$lte:        <=

$in:        in(后面的值为bson对象数组)

$nin:        not in(后面的值为bson对象数组)

这些操作符的用法和$gt类似,不在赘述

总结

通过这篇文章就可以对MongoDB进行简单的查询了,但是在具体业务中只有简单查询是不现实的,会有更多的与或关系,这戏内容将在下次文章中叙述。

最新文章

  1. 初识MVC
  2. ACM/ICPC 之 Dinic算法(POJ2112)
  3. CF448C Painting Fence (分治递归)
  4. 删除Visual Studio Online 中团队项目
  5. 如何下载Spring
  6. Microsoft SQL Server 存储过程举例
  7. BZOJ 2429 聪明的猴子
  8. xmlns=&quot;http://schemas.xmlsoap.org/wsdl/&quot;,这是什么意思,我只知道:xmlns:xx=....,
  9. mysql delete from
  10. Android Drawable 和String 相互转化
  11. 关于Linux的缓存内存 Cache Memory详解&lt;转&gt;
  12. LeeCode-Sort Colors
  13. android 图片合成
  14. Ubuntu 16.04上搭建CDH5.16.1集群
  15. 微软公布针对最新IE漏洞的安全通报2963983
  16. pandas修改全列的时间格式 无需使用apply
  17. 详解HTTP协议
  18. Java并发程序设计(十三)锁的性能优化
  19. EasyUI datagrid easyui datagrid +dialog 加载 可直接运行 七
  20. Opencv打开摄像头,读不到图像,一般来说先读取第一帧,舍弃,然后就正常了

热门文章

  1. tmocat ssl 证书 生成 过程
  2. Vlock用于有多个用户访问控制台的共享 Linux 系统
  3. Python入门之用Python统计代码行
  4. Android http通信 HttpURLConnection
  5. troubleshooting-windows 在 CDH集群环境读取 Hive 表 KrbException: Cannot locate default realm
  6. 20145310《网络对抗》注入shellcode及Return-to-libc
  7. 20145334赵文豪 WEB基础实践
  8. 20165310 java_blog_week3
  9. MFC制作OCX
  10. hdu 3698 UVA1490 Let the light guide us 线段树优化DP