如何从数组中删除对象?
How can I remove an object from an array?
我想从数组中删除一个对象。这是我正在使用的架构:
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 });
}
);
我做错了什么?
$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 });
}
);
我想从数组中删除一个对象。这是我正在使用的架构:
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 });
}
);
我做错了什么?
$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 });
}
);