在 MongoDB for Java 中修改嵌套文档的值



一个很快的问题,我将如何在下面做到这一点:

> db.blog.posts.findOne()
{
"_id" : ObjectId("4b253b067525f35f94b60a31"),
"title" : "A Blog Post",
"content" : "...",
"author" : {
    "name" : "joe",
    "email" : "joe@example.com"
     }
}

我在Javascript中看到的答案是:

> db.blog.posts.update({"author.name" : "joe"}, {"$set" : {"author.name" : "joe schmoe"}})

但是我该如何在Java中做到这一点呢?

如果我有一个非常深层的值必须更改,我应该使用这种方式吗?比如:"person.abc.xyz.name.address"?

使用点表示法访问嵌套文档在Java驱动程序中运行良好。看看这个StackOverflow答案:

MongoDB嵌套文档搜索

对于Java驱动程序,其基本思想是用BasicDBObject的实例替换Javascript对象。

这里有另一个很好的更新参考:

MongoDb';s$在其java驱动程序中设置等价项

最新更新