如何在mongodb中更新整个对象?

时间:2012-08-28 06:44:56

标签: mongodb

在下面的文档中,我有array名为imAccounts。我想update() array中的对象{ "_id" : ObjectId("503c55da1c192a530b000001"), "imAccounts" : [ { "accountType" : "Windows", "accountName" : "rwqerqw", "accountPassword" : "erqwerwe" }, { "accountType" : "Yahoo", "accountName" : "rwqerqw", "accountPassword" : "erqwerwe" }] } 。我怎么能这样做?

{{1}}

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'}
    }
)

请注意,位置操作符目前仅适用于查询中第一个匹配项。