如何查询和更新所有文档数组

时间:2014-09-05 07:13:08

标签: mongoose

我有一个关于猫鼬的问题:

我有一些"用户" in" mongodb"他们都有#34;朋友"数组,我需要将新数据推送到"朋友"特定用户的数组,有一种方法可以使用单个查询吗?

这是架构:

var userSchema = mongoose.Schema({
    name : String,
    pictureUrl : String,
    devices : [String],
    friends : [String]
});
mongoose.model('user',userSchema);

我想做这样的事情

friends = [7823g87yh87y,ou327ujjghd9,py98hd98y23yh];
newUser["_id"] = ObjectId(236487g872he87y78);

user.update(
    {"_id": friends}, 
    {$push: {"friends": newUser["_id"]}},
    function (err, data) {
        if (err)
            console.log(err);
    });

1 个答案:

答案 0 :(得分:1)

您可以使用$in_id与一系列值匹配,并使用{multi: true}选项将更新应用于所有匹配的文档,而不仅仅是第一个:

user.update(
    {"_id": {$in: friends}}, 
    {$push: {"friends": newUser["_id"]}},
    {multi: true},
    function (err, data) {
        if (err)
            console.log(err);
    });