如果我有几个使用以下结构的文档:
{
"_id" : ObjectId("4f9c6fe033cddec1bea430f2"),
"title" : "Product #1",
"comments" :
[
{
"comment" : "My comment",
"date" : "2012-03-01 00: 00: 00",
"name" : "Test Name",
"username" : "Test Username"
},
{
"comment" : "My comment",
"date" : "2012-03-01 00: 00: 00",
"name" : "Test Name 2",
"username" : "Test Username 2"
}
]
}
我是否可以找到所有包含reviews.name并更新的文档?例如,我想找到所有带有user.name:test name 2的文档并将其更改为Cassie。那可能吗?如果不是,将评论放在不同的集合中会更好吗?
答案 0 :(得分:2)
是的,这是可能的。你必须使用comments.username
找到它,然后comments.$.username
注意,因为你要发布到一个数组,你必须告诉mongo使用$ positional operator进入那里