这是我的第一个Web应用程序,我需要删除一个嵌套的数组项。你会如何删除猫鼬的对象与此模式:如何从Mongoose中的数组中删除嵌套的对象
User: {
event: [{_id:12345, title: "this"},{_id:12346, title:"that"}]
}
我怎么能去的猫鼬/蒙戈删除id:12346
?
这是我的第一个Web应用程序,我需要删除一个嵌套的数组项。你会如何删除猫鼬的对象与此模式:如何从Mongoose中的数组中删除嵌套的对象
User: {
event: [{_id:12345, title: "this"},{_id:12346, title:"that"}]
}
我怎么能去的猫鼬/蒙戈删除id:12346
?
使用$pull从项的数组中删除的项目,如以下:
db.User.update(
{ },
{ $pull: { event: { _id: 12346 } } }
)
的$拉操作者从现有阵列删除一个 值或匹配指定条件的值的所有实例。
第一个参数中的空对象是query
来查找文档。上述方法删除集合中所有文档中数组中_id: 12345
的项目。
db.User.update(
{ },
{ $pull: { event: { _id: 12346 } } },
{ multi: true}
)
Findone将搜索ID,如果没有找到,那么犯错,否则将删除工作: 如果有,将符合条件的数组中的多个项目,如下图所示设置multi
选项设置为true。
User.findOne({id:12346}, function (err, User) {
if (err) {
return;
}
User.remove(function (err) {
// if no error, your model is removed
});
});
如果我正在阅读此权限,它将搜索“event {_id:123456)”的所有内容并将其删除,更正?如果需要,我可以通过在第一个条件中添加一个ID来删除一个实例,对吗? – illcrx
它将在集合'User'中的所有文档中的'event'数组中删除所有'_'项,其中'_id:123456'。如果你想删除所有匹配的文件,你可以使用'remove'方法 – superUser
'$ pull'将删除现有数组中的特定值,而不是与条件匹配的整个文档。如果要删除与条件匹配的整个文档,请使用'db.collection.remove' – superUser