版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/com_it/article/details/84673002
1、创建maven项目,并添加java驱动,使用的是3.9API版本
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.9.1</version>
</dependency>
<dependency>
2、代码如下
package com.it.mongod;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.bson.Document;
import org.junit.Before;
import org.junit.Test;
import com.mongodb.Block;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Updates;
import com.mongodb.client.result.UpdateResult;
import static com.mongodb.client.model.Filters.*;//手动导入
public class Demo {
private MongoClient mongoClient=null;
private MongoDatabase database=null;
private MongoCollection<Document> collection=null;
@Before
public void init(){
//1、创建MongoClient客户端对象
mongoClient = MongoClients.create("mongodb://192.168.32.135:27017");
//2、得到数据库对象,如果mydb不存在,则创建一个
database = mongoClient.getDatabase("mydb");
//3、访问集合,如果test集合不存在,则创建
collection = database.getCollection("test");
}
//插入数据
@Test
public void insert(){
//1、插入单条文档
Document doc = new Document("name", "MongoDB")
.append("type", "database")
.append("count", 1)
.append("versions", Arrays.asList("v3.2", "v3.0", "v2.6"))
.append("info", new Document("x", 203).append("y", 102));
collection.insertOne(doc);
//2、插入多条文档
List<Document> documents = new ArrayList<Document>();
for (int i = 0; i < 10; i++) {
documents.add(new Document("i", i));
}
collection.insertMany(documents);
System.out.println("test集合中的文档数:"+collection.countDocuments());
mongoClient.close();
}
//查询数据
@SuppressWarnings("deprecation")
@Test
public void query(){
//1、查询test集合中的第一个文档
Document myDoc = collection.find().first();
System.out.println(myDoc.toJson());
//2、查询test集合中的所有文档
MongoCursor<Document> cursor = collection.find().iterator();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} finally {
cursor.close();
}
/**避免使用for循环,因为如果循环提前终止,应用程序可能会泄漏游标
* for (Document cur : collection.find()) {
System.out.println(cur.toJson());
}
*/
//3、获取与过滤条件匹配的单个文档
myDoc = collection.find(eq("i", 5)).first();//查询字段为5的第一个文档
System.out.println(myDoc.toJson());
//4、获取与过滤条件匹配的所有文档
Block<Document>blocks=new Block<Document>(){
public void apply(Document document) {
System.out.println(document.toJson());
}
};
collection.find(gt("i", 6)).forEach(blocks);
mongoClient.close();
}
//更新数据
@Test
public void update(){
//1、更新单条文档
collection.updateOne(eq("i", 8), new Document("$set", new Document("i", 888)));
//2、更新多条文档
//对于小于100的所有文档,将值增加100
UpdateResult updateResult = collection.updateMany(lt("i", 100), Updates.inc("i", 100));
System.out.println(updateResult.getModifiedCount());
mongoClient.close();
}
//删除数据
@Test
public void delete(){
//1、删除单条数据
collection.deleteOne(eq("i", 110));
//2、删除多条数据
collection.deleteMany(gte("i", 100));
mongoClient.close();
}
}
3、注意:
静态内置方法需要手动导入