在下面的文档中,我有array
名为imAccounts。我想update()
array
中的对象{
"_id" : ObjectId("503c55da1c192a530b000001"),
"imAccounts" : [
{
"accountType" : "Windows",
"accountName" : "rwqerqw",
"accountPassword" : "erqwerwe"
},
{
"accountType" : "Yahoo",
"accountName" : "rwqerqw",
"accountPassword" : "erqwerwe"
}]
}
。我怎么能这样做?
{{1}}
答案 0 :(得分:1)
使用此文档结构,您可以使用positional operator ($):
更新数组中的对象db.myarray.update(
{ // Match criteria
"_id" : ObjectId("503c55da1c192a530b000001"),
'imAccounts.accountType': 'Yahoo',
},
{ // Update first matched item using positional operator $
'$set' : { 'imAccounts.$.password':'sekrit'}
}
)
请注意,位置操作符目前仅适用于查询中第一个匹配项。