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

时间:2012-09-04 15:22:52

标签: java mongodb

一个非常快速的问题,我将如何在下面执行此操作:

> 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”?

1 个答案:

答案 0 :(得分:1)

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

MongoDB nested documents searching

对于Java Driver,基本思想是用BasicDBObject实例替换Javascript对象。

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

MongoDb's $set equivalent in its java Driver