MongoDB - Java - 更新文档
MongoDB 提供了 MongoCollection 类来更新 collection 中的一个 document。
语法
// 选择一个 collection
MongoCollection<Document> collection = database.getCollection("sampleCollection");
// 将 "title" 为 MongoDB 的文档属性 "likes" 更新为 150
collection.updateOne(Filters.eq("title", "MongoDB"), Updates.set("likes", 150));
更新 Collection 中的 Document
要更新一个 document,我们首先需要连接到 database,然后选择 collection 并更新 document,如下所示 −
package com..mongodb;
import java.util.Iterator;
import org.bson.Document;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;
public class MongoDBTester {
public static void main(String args[]) {
String uri = "mongodb://localhost:27017/";
try (MongoClient mongoClient = MongoClients.create(uri)) {
MongoDatabase database = mongoClient.getDatabase("myDb");
// 选择一个 collection
MongoCollection<Document> collection = database.getCollection("sampleCollection");
collection.updateOne(Filters.eq("title", "MongoDB"), Updates.set("likes", 150));
System.out.println("Document updated successfully...");
// 获取 iterable 对象
FindIterable<Document> iterDoc = collection.find();
int i = 1;
// 获取 iterator
Iterator<Document> it = iterDoc.iterator();
while (it.hasNext()) {
System.out.println(it.next());
i++;
}
}
}
}
输出
现在,编译并运行上述程序,以在我们的数据库 myDb 的 collection 中更新一个 document。
执行后,上述程序将产生以下输出。
Document updated successfully...
Document{{_id=69673eabfe1a70a594cd116b, title=MongoDB, description=database, likes=150, url=https://www.example.com by=}}
Document{{_id=69675615b8a497382adfd88e, title=RethinkDB, description=database, likes=200, url=https://www.example.com by=}}