MangoDB在java中的查询
来源:互联网 发布:虚拟男朋友聊天软件 编辑:程序博客网 时间:2024/06/06 02:30
前言
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对象数组)
6,与查询
操作符:$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());
}
7、或查询
操作符:$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());
}
- MangoDB在java中的查询
- MangoDB在java中的实现
- mangodb
- mangoDB学习笔记(二)查询
- mongodb在java中的分页查询
- mongodb在Java中的分页查询
- JDBC在Java Web中的应用——分页查询
- java中的粗略查询
- Java中的分页查询
- mangodb常用命令
- install mangodb
- MangoDB learning
- MangoDB 实例
- windows mangoDB
- java 中的 jdbc 中的数据库查询
- 关于在HQL中的模糊查询问题
- T-SQL命令在查询中的运用
- db2在hibernte中的统计查询
- mysql慢查询分析
- 161224
- Unity3Dy各个平台动态读取外部文件解析
- QLineEdit 使用方法
- jianzhi减枝
- MangoDB在java中的查询
- UMR与黑白熊
- HiveServer2 源码分析
- OkHttp的使用分析,okhttp的多种getpost方式
- gitlab 上源码Merge后出现git gc的解决方案
- CodeForces745C C - Hongcow Builds A Nation 图论+容斥
- Leetcode 133. Clone Graph (Medium) (cpp)
- 证明碰撞集问题为NP完全问题。
- 2016.12.24总结