我想从数组中删除一个对象。以下是我正在使用的架构:
event: {
invitees: {
users : [{
user: {
type: String,
ref: 'User'
},
}],
}
}
我使用的查询如下所示,但它不起作用。基本上,当我运行这个脚本时没有任何反应。
Event.update(
{"_id": req.params.event_id},
{"$pull": {"invitees.users.user": req.params.user_id}},
{safe: true, upsert: true},
function (err, data) {
if (err) {
console.log(err);
}
return res.json({ success: true });
}
);
我做错了什么?
答案 0 :(得分:1)
$pull
运算符的field
标识数组以从匹配的query
中提取元素。
所以你的更新应该是这样的:
Event.update(
{"_id": req.params.event_id},
// { $pull: { <array field>: <query> } }
{"$pull": {"invitees.users": {"user": req.params.user_id}}},
{safe: true, upsert: true},
function (err, data) {
if (err) {
console.log(err);
}
return res.json({ success: true });
}
);