SpringBoot 中引入依赖请参考《鱼有梦想吗》上篇文章:
SpringBoot 集成MonggoDb 依赖问题分析
一、获取MongoClient
private static MongoClient getMongoClient(String url){
ConnectionString connString = new ConnectionString(url);
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(connString)
.retryWrites(true)
.build();
MongoClient mongoclient = MongoClients.create(settings);
return mongoclient;
}
二、创建数据库,创建集合:mongoclient.getDatabase(String basename);
此方法,如果指定名称的库不存在,则会自动创建。
String url="mongodb://localhost:27017";
MongoClient mongoclient = getMongoClient(url);
//创建数据库
MongoDatabase database = mongoclient.getDatabase("test");
//创建集合
database.createCollection("test3333");
二、删除数据库:database.drop()
String url="mongodb://localhost:27017";
MongoClient mongoclient = getMongoClient(url);
//创建数据库
MongoDatabase database = mongoclient.getDatabase("test");
//删除数据库
database.drop();
三、获取指定数据库中的集合列表:database.listCollectionNames()
四、删除集合:database.getCollection(String collectionName).drop();
//删除dept集合
database.getCollection("dept").drop();
MongoIterable<String> list = database.listCollectionNames();
for (String name : list) {
System.out.println(name);
}
五、集合中保存数据
MongoCollection<Document> collection = database.getCollection("empl");
Document document = new Document("name", "小王")
.append("description", "测试人员")
.append("likes", "读书")
.append("age", 20);
collection.insertOne(document);
六、集合中查询数据
// 检索集合
MongoCollection<Document> collection = database.getCollection("empl");
// 获取 iterable 对象
FindIterable<Document> iterDoc = collection.find();
// 获取迭代器
for (Document document : iterDoc) {
System.out.println(document);
}
七、更新集合中的数据
// 检索集合
MongoCollection<Document> collection = database.getCollection("empl");
//更新读书为看电影
collection.updateMany(Filters.eq("name", "小王"), Updates.set("likes", "看电影"));
// 获取 iterable 对象
FindIterable<Document> iterDoc = collection.find();
// 获取迭代器
for (Document document : iterDoc) {
System.out.println(document);
}
八、删除集合中的数据
// 检索集合
MongoCollection<Document> collection = database.getCollection("empl");
//删除名称为小王的数据
collection.deleteOne(Filters.eq("name", "小王"));
// 获取 iterable 对象
FindIterable<Document> iterDoc = collection.find();
// 获取迭代器
for (Document document : iterDoc) {
System.out.println(document);
}
说明:代码中引入的类为
import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.client.*;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;
import org.bson.Document;