连接MongoDB
(1)获取MongoDB对象
第一种方式
MongoClient mongoClient = MongoClients.create();
第二种方式使用impl的实现类,第一种方式的原理其实也是这种方式
MongoClient mongoClient=new MongoClientImpl(MongoClientSettings.builder().applyConnectionString(new ConnectionString("mongodb://localhost")).build(),null);//第二种使用impl实现类的方法
(2)获取数据库连接
MongoDatabase database = mongoClient.getDatabase("articledb");
连接成功
操作集合
1、创建集合:
try {
//连接数据库
MongoClient mongoClient = MongoClients.create();
MongoDatabase mongoDatabase = mongoClient.getDatabase("articledb");
System.out.println("Connect to database successfully");
//创建集合
mongoDatabase.createCollection("test");
}catch (Exception e){
System.err.println(e.getClass().getName()+":"+e.getMessage());
}
2、获取集合:
try中添加如下语句
MongoCollection<Document> collection = mongoDatabase.getCollection("test");//获取集合
System.out.println("集合获取成功!");
插入文档:
/*
*1、创建文档org.bson.Document参数为key-value格式
*2、创建文档集合List<Document>
*3、将文档集合插入数据库集合中mongoCollection.insertMany(List<Document>)
*4、插入单个文档用mongoCollection.insertOne(Document)
**/
Documentdocument=newDocument();
//链式编程,像Document中添加数据
document.append("title","**的MongoDB之旅")
.append("description","这是一个测试性的文档")
.append("likes",100)
.append("by","LittleHorseBrother");
//创建一个集合用来装Document
List<Document>documents=newArrayList<>();
documents.add(document);
//插入数据
collection.insertMany(documents);
System.out.println("文档插入成功!");
检索文档
//检索所有文档
/*
*1、获取迭代器FindIterable<Document>
*2、获取游标MongoCursor<Document>
*3、通过游标遍历检索出
**/
//获取迭代器
FindIterable<Document>FindDocuments=collection.find();
/*
//获取游标
MongoCursor<Document>cursor=FindDocuments.iterator();
while(cursor.hasNext()){
System.out.println(cursor.next());
}*/
//增强for写法
for(DocumentfindDocument:FindDocuments){
System.out.println(findDocument);
}
更新以及删除文档
//Filters.eq筛选器使用key-value写法
collection.updateMany(Filters.eq("likes",100),new Document("$set",new Document("likes",200)));
//验证
for (Document findDocument : FindDocuments) {
System.out.println(findDocument);
}
删除:
//删除第一个文档
collection.deleteOne(Filters.eq("likes",200));
//删除所有则是deleteMany
//验证
for (Document findDocument : FindDocuments) {
System.out.println(findDocument);
}
获取单个字段
FindIterable<Document> likes = collection.find();
MongoCursor<Document> iterator = likes.iterator();
//使用迭代器获取下一个数据
Document next = iterator.next();
//使用get方法获取字段
Object id = next.get("title");
String s = id.toString();
System.out.println(s);