无法更新mongodb中的文档(想要在数组中推送项目)

时间:2016-01-07 22:23:48

标签: node.js mongodb mongoose

起初我为我的英语道歉:(
我是 nodeJs mongodb 的新人,我遇到了问题 我无法将任何项目添加到数组中 这就是我的尝试:

db.conversations.update({userID: memberID} ,{
       "user_users" : {
           $push : { "member": userID } // this does not work :((
          }
         });

我也试过这个:

db.conversations.user_users = {
            $push : {
                 member: memberID
             }
            };
            db.conversations.save();

我想这样工作:

{
"_id" : conversationID,
"userID" : userID,
"user_users" : { "member" : memberID,  "member" : memberID }
}  

1 个答案:

答案 0 :(得分:3)

以下JSON:

{
    "_id": conversationID,
    "userID": userID,
    "user_users": {
        "member": memberID,
        "member": memberID
    }
}

无效,因为“member”是重复的密钥。您可以做的是将user_users转换为用户数组并执行以下操作:

{
    "_id": conversationID,
    "userID": userID,
    "user_users": [
        {
            "member": memberID
        },
        {
            "member": memberID
        }
    ]
}

其中数组user_users的每个成员都是一个文档。然后,您可以执行以下查询以向阵列添加成员:

db.conversations.update(
    {userID: memberID} ,
    {$push : {"user_users" : { "member": userID }}}
)