使用Java驱动程序更新MongoDB中子字段的值?

the*_*edp 3 java mongodb

我对MongoDB很新,它是Java驱动程序.
我需要更新子字段的值,但我在网上找不到任何示例.

文件:

{
    "_id" : ObjectId("45678942342"),
    "user" : "me",
    "aStruct" : {
        "subfield_1" : true,
        "subfield_2" : true
    }
}
Run Code Online (Sandbox Code Playgroud)

对于每个包含user = me的文档,如何将子字段subfield_1的值更新为false


谢谢.

Par*_*ade 5

你可以这样做:

db.collection.update({user : "me"},{$set:{"aStruct.subfield_1" : false}}, false, true)
Run Code Online (Sandbox Code Playgroud)

在Java中,您可以按如下方式执行此操作:

DBCollection coll = // Define your collection here

DBObject query = new BasicDBObject();
query.put("user", "me");

DBObject updateObj = new BasicDBObject();
updateObj.put("aStruct.subfield_1", false);

coll.updateMulti(query, new BasicDBObject("$set", updateObj));
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请阅读以下文档.