我有一个关于猫鼬的问题:
我有一些"用户" 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);
});
答案 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);
});