MongoDB 使用 Java 3 驱动更新
MongoDB update using Java 3 driver
我正在切换到 MongoDB Java 驱动程序版本 3。我不知道如何执行文档更新。比如我想改变一个用户的"age":
MongoDatabase db = mongoClient.getDatabase("exampledb");
MongoCollection<org.bson.Document> coll = db.getCollection("collusers");
Document doc1 = new Document("name", "frank").append("age", 55) .append("phone", "123-456-789");
Document doc2 = new Document("name", "frank").append("age", 33) .append("phone", "123-456-789");
coll.updateOne(doc1, doc2);
输出为:
java.lang.IllegalArgumentException: Invalid BSON field name name
知道如何解决吗?
谢谢!
你可以试试这个
coll.findOneAndReplace(doc1, doc2);
使用:
coll.updateOne(eq("name", "frank"), new Document("$set", new Document("age", 33)));
用于更新找到的第一个文档。对于多个更新:
coll.updateMany(eq("name", "frank"), new Document("$set", new Document("age", 33)));
在这个link上,你可以罚款quick reference to MongoDB Java 3 Driver
在Mongodb Java driver 3.0 更新文档时,可以调用coll.replaceOne方法替换文档,或者调用coll.updateOne / coll.updateMany 方法通过使用 $set/$setOnInsert/etc 运算符来更新文档。
对于你的情况,你可以尝试:
coll.updateOne(eq("name", "frank"), new Document("$set", new Document("age", 33)));
coll.replaceOne(eq("name", "frank"), new Document("age", 33));
我正在切换到 MongoDB Java 驱动程序版本 3。我不知道如何执行文档更新。比如我想改变一个用户的"age":
MongoDatabase db = mongoClient.getDatabase("exampledb");
MongoCollection<org.bson.Document> coll = db.getCollection("collusers");
Document doc1 = new Document("name", "frank").append("age", 55) .append("phone", "123-456-789");
Document doc2 = new Document("name", "frank").append("age", 33) .append("phone", "123-456-789");
coll.updateOne(doc1, doc2);
输出为:
java.lang.IllegalArgumentException: Invalid BSON field name name
知道如何解决吗? 谢谢!
你可以试试这个
coll.findOneAndReplace(doc1, doc2);
使用:
coll.updateOne(eq("name", "frank"), new Document("$set", new Document("age", 33)));
用于更新找到的第一个文档。对于多个更新:
coll.updateMany(eq("name", "frank"), new Document("$set", new Document("age", 33)));
在这个link上,你可以罚款quick reference to MongoDB Java 3 Driver
在Mongodb Java driver 3.0 更新文档时,可以调用coll.replaceOne方法替换文档,或者调用coll.updateOne / coll.updateMany 方法通过使用 $set/$setOnInsert/etc 运算符来更新文档。
对于你的情况,你可以尝试:
coll.updateOne(eq("name", "frank"), new Document("$set", new Document("age", 33)));
coll.replaceOne(eq("name", "frank"), new Document("age", 33));