mongodb中的嵌套数组更新

时间:2014-04-16 11:38:18

标签: mongodb

我的收藏结构是: -

Subscribed.insert({
    "name":  "Manager1",
    "emailId": "arora.priya4172@gmail.com",
    "category": "Finance",
    "designation": 'Head',
    "done": false,
    "categorySubscribedUsers": [
        {
            "_id": "u4._id",
            "username": "u4.profile.name",
            "issuesNotToDisplay": []
        },
        {
            "_id": "u4._id",
            "username": "u4.profile.name",
            "issuesNotToDisplay": []
        },
        {
            "_id": "u4._id",
            "username": "u4.profile.name",
            "issuesNotToDisplay": []
        }
    ]
});

我想在issuesNotToDisplay字段中插入一个字段。所以,为此,我使用以下命令,但收到错误:

  

'语法错误:缺少:浏览器控制台中的属性ID'和'语法错误丢失令牌'之后。

在mongodb控制台中。

任何人都可以告诉我在mongodb中更新双嵌套数组中字段的正确命令。我已经尝试了很多并且读了书但仍然无能为力。为什么这个命令出错?

命令是: -

db.subscribed.update(
    {
        "category": "Finance",
        "categorySubscribedUsers": "priya"
    },
    { 
        "$addToSet": {
            "categorySubscribedUsers.$.issueNotToDisplay": "25PEgZoMamLSTDdw7"
        }
    }
);

1 个答案:

答案 0 :(得分:0)

可能你需要这个

db.subscribed.update(
{
    "category": "Finance",
    "categorySubscribedUsers.username" : "u4.profile.name"
},
{ 
    "$addToSet": {
        "categorySubscribedUsers.$.issueNotToDisplay": "25PEgZoMamLSTDdw7"
    }
}
)