MongoDB Java API查询实现
来源:互联网 发布:小程序如何连接数据库 编辑:程序博客网 时间:2024/05/01 23:10
最近在学习MongoDB的JAVA API,便于以后查阅,总结java中实现MongoDB查询的实现方式:
总的来讲,java api中的BasicDBObject相当于mongo命令中的大括号"{}",BasicDBList相当于中括号"[]",这样就比较容易理解下面的语句了。
1.创建连接
import com.mongodb.MongoClient;import com.mongodb.MongoException;import com.mongodb.WriteConcern;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.BasicDBObject;import com.mongodb.DBObject;import com.mongodb.DBCursor;import com.mongodb.ServerAddress;import java.util.Arrays;// To directly connect to a single MongoDB server (note that this will not auto-discover the primary even// if it's a member of a replica set:MongoClient mongoClient = new MongoClient();// orMongoClient mongoClient = new MongoClient( "localhost" );// orMongoClient mongoClient = new MongoClient( "localhost" , 27017 );// or, to connect to a replica set, with auto-discovery of the primary, supply a seed list of membersMongoClient mongoClient = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017), new ServerAddress("localhost", 27018), new ServerAddress("localhost", 27019)));DB db = mongoClient.getDB( "mydb" );
以上代码引用于MongoDB官网:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/#getting-started-with-java-driver
后续的db对象参照上面的代码获取。
2. 获取全部collections的名称
Set<String> colls = db.getCollectionNames();for (String s : colls) { System.out.println(s);}
3. 获取一个collection对象
DBCollection coll = db.getCollection("testCollection");
4. 插入一条记录(Document)
文档内容:
{ "name" : "MongoDB", "type" : "database", "count" : 1, "info" : { x : 203, y : 102 }}
java插入语句:
BasicDBObject doc = new BasicDBObject("name", "MongoDB"). append("type", "database"). append("count", 1). append("info", new BasicDBObject("x", 203).append("y", 102));coll.insert(doc);
5. 插入多条记录
for (int i=0; i < 100; i++) { coll.insert(new BasicDBObject("i", i));}
6. 进行count操作
System.out.println(coll.getCount());
7. 查询collection中的第一条记录:
mongo语句:
db.mycollection.findOne() 或者 db.mycollection.findOne({})
java语句:
DBCollection coll = db.getCollection("testCollection");DBObject myDoc = coll.findOne();System.out.println(myDoc);
8. 使用游标(cursor)遍历记录
DBCursor cursor = coll.find();try { while(cursor.hasNext()) { System.out.println(cursor.next()); }} finally { cursor.close();}
9. 根据条件进行简单查询
java语句:
BasicDBObject queryObj = new BasicDBObject("name", "MongoDB");cursor = coll.find(query);try { while(cursor.hasNext()) { System.out.println(cursor.next()); }} finally { cursor.close();}
10. 根据条件进行复杂查询
(1)数值比较$gt(大于)、$lt(小于)、$gte(大于等于)、$lte(小于等于):
Mongo语句:
db.coll.find({"age", {$gt, 10}})
java语句:
BasicDBObject queryObj = new BasicDBObject("age", new BasicDBObject("$gt", 10)); DBCursor cursor = coll.find(queryObj);try {while (cursor.hasNext()) {System.out.println(cursor.next());}} finally {cursor.close();}这里的BasicDBObject相当于mongo语句中的大括号"{ }"
(2)$or操作:
Mongo语句:
db.coll.find({$or, [{"age", 10}, {"age", 15}]})
Java语句:
BasicDBList options = new BasicDBList();options.add(new BasicDBObject("age", 10));options.add(new BasicDBObject("age", 15));DBObject queryObj = new BasicDBObject("$or", options);DBCursor cursor = coll.find(queryObj);try {while (cursor.hasNext()) {System.out.println(cursor.next());}} finally {cursor.close();}这里的BasicDBList相当于mongo语句中的中括号"[ ]"。
简单总结到这里,如有错误,欢迎批评指正~
0 0
- MongoDB Java API查询实现
- mongodb- Java API 查询操作
- mongodb- Java API 查询操作
- mongodb java API查询例子
- java实现MongoDB查询一
- 用java实现mongodb正则查询
- java实现mongoDB的多条件查询
- Java实现对mongodb模糊查询
- MongoDB模糊查询java实现样例
- MongoDB JAVA API高级查询示例(对应于上一篇)
- $within进行空间查询--MongoDB API for Java
- MongoDB JAVA API高级查询示例(对应于上一篇)
- mongodb java api
- mongodb java api
- mongodb java api
- mongodb java api
- MongoDB Java API
- MongoDB(4) java api
- 基础总结篇之三:Activity的task相关
- linux子系统的初始化_subsys_initcall():那些入口函数
- jquery-highlight在web页面让字符高亮显示
- 让多个Fragment 切换时不重新实例化
- 将博客搬至CSDN
- MongoDB Java API查询实现
- python 网络编程(TCP & UDP)
- unsupported major.minor version 解决方法
- android实现虚拟按键实例
- 网讯IOS笔试题
- 用hmailserver搭建邮件服务器
- javascript/JS限制用户名只能输入字母和数字下划线
- Makefile
- Android自动化测试初探(四): 模拟键盘鼠标事件(Socket+Instrumentation实现)