首先, 下载mongo-java_driver
maven 依赖如下
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.5.0</version>
</dependency>
导入相关类。
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import org.bson.Document; // mongo db中的一条数据就是一个Document类型
连接数据库:
public static MongoDatabase getMongoDataBase(String host, int port, String dbName){
//need a string: host and a int: port
MongoClient client=new MongoClient(host,port);
MongoDatabase db=client.getDatabase(dbName);
return db;
}
构造查询语句:
通用语法: key 为要查询的键, value 为要查询的键对应的值,对应的select sql为 where key=value
BasicDBObject queryCondition=new BasicDBObject(key,value);
或者 BasicDBObject queryCondition=new BasicDBObject();
queryCondition.put(key,value);
// BasicDBObject 是一个map 可以用put 增加要查询的语句
queryCondition.put("age","25"); //select age=25,在mongodb js语法形式如下{"age":25}
一个BasicDBObject 就相当于js语法中一个{}
另外查询语句可以嵌套,比如常见的在mongo js语法中 find({"age":{"$gt":25}})
这条语句有2个{} 相当于需要两个BasicDBObject 嵌套
对应的java 语句如下:
BasicDBObject queryCondition=new BasicDBObject("age",new BasicDBObject("$gt",25));
或者
BasicDBObject condition=new BasicDBObject("$gt",25);
queryCondition.put("age",condition);
写完查询语句之后进行查询
collection.find(queryCondition); // 原型是 collection.find(BasicDBObject);
find 方法返回一个FindIterable<> 类型的数据
查询后需要进行检索结果
//获取可迭代结果集
FindIterable<Document> findIterable=collection.find();
//获取迭代器游标
MongoCursor<Document> iter=findIterable.iterator();
//利用迭代器遍历数据集
while(iter.hasNext()){
Document tmp=iter.next(); // Document is org.bson.Document
//Document 是一个map 可以根据key获取记录中的值
Value=tmp.get(key);
}