以下是示例文档.
{
"_id" : ...,
"inprogress" : true,
"name" : "Biz report",
"inviteCode" : [
{
"key" : "4fbd2b4b265a3",
"status" : "1"
},
{
"key" : "4fbd2b4b265b5",
"status" : "1"
},
{
"key" : "4fbd2b4b265b9",
"status" : "1"
},
{
"key" : "4fbd2b4b265bc",
"status" : "1"
},
{
"key" : "4fbd2b4b265c0",
"status" : "1"
}
]
}
Run Code Online (Sandbox Code Playgroud)
根据文档,我可以使用修饰符对象作为更新参数,但似乎更新参数不包括我想要更新的女巫字段的过滤器.我只能使用,$set:{name:"xxx"}但我不能指定在嵌套数组中更新哪个元素.如何设置inviteCode列的"status"字段,其中key为"4fbd2b4b265a3"?
A. *_*vis 12
您可以使用$ positional运算符:http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator
在你的情况下:
db.collection.update( { inviteCode: { $elemMatch: { key: "4fbd2b4b265a3" } } },
{ $set: { 'inviteCode.$.status': '2' } } )
Run Code Online (Sandbox Code Playgroud)
'$'实际上是一个变量,其值设置为数组中第一个匹配的索引.
| 归档时间: |
|
| 查看次数: |
4624 次 |
| 最近记录: |