0

我想为组中的每个子文档添加一个新的文件,如“电子邮件”

{ "_id" : 10, 
  "groups" : [ 
        { 

                "members" : ["Mark"], 
                "name" : "My Friends" 
        },
        { 

                "name" : "Colleagues" 
        }, 
        { 

                "name" : "Buddies" 
        },..... 
],.. } 

请给我建议。提前致谢。

我正在尝试 tis 但它不起作用 db.users.update({},{$push: {"groups.$.email": 'abc'} }, true, true);

4

1 回答 1

0

为此,您需要使用$elemMatch运算符。具体来说,您想要:

db.users.update({_id:10,groups:{$elemMatch:{name:"My Friends"}}},{$push: {"groups.$.email":"abc"}},false,true);

重要的部分是 $elemMatch 会将数组指针设置为匹配的确切元素,因此您可以在该点推送。

于 2014-12-10T16:34:34.570 回答