[英]How do you delete a Json object by id in node Mongodb?
我有一个名为“ EVENTS”的Mongodb集合,并且在集合中有一个数组对象,如下所示:
{
"Events":[
{
"_id":"53ae59883d0e63aa77f7b5b2",
"Title":"Title Blank",
"Desc":"Description Blank",
"Date":"2014-06-04 00:30",
"Link":"http://googleparty.com",
"Event":"Victoria Centre",
"dateCreated":"28/6/2014 06:58"
},
{
"_id":"53ae59883d0e63aa77f7b5b3",
"Title":"Hello World",
"Desc":"hello",
"Date":"2014-06-04 00:30",
"Link":"http://linkedinparty.com",
"Event":"social",
"dateCreated":"30/2/2014 11:10"
}
]
}
我将如何通过node.js中的ID删除对象,因此“ delete(53ae59883d0e63aa77f7b5b2)”将产生以下内容:
{
"Events":[
{
"_id":"53ae59883d0e63aa77f7b5b3",
"Title":"Hello World",
"Desc":"hello",
"Date":"2014-06-04 00:30",
"Link":"http://linkedinparty.com",
"Event":"social",
"dateCreated":"30/2/2014 11:10"
}
]
}
问候
如果您真正想做的只是“清空”数组,则只需将$set
运算符与.update()
一起使用,并将数组“设置”为空:
db.collection.update({},{ "$set": { "Events": [] } },{ "mutli": true})
因此, .update()
操作使用“查询”来选择集合中的文档,如图所示的空白查询会选择所有内容。 “更新”部分包含$set
操作,该操作仅将当前的“事件”字段替换为空数组。
此处的“ multi”选项可确保将其应用于所有匹配的文档。 默认值为false
,将仅更新匹配的第一个文档。
有关删除选定数组元素的更具体的操作,请查看$pull
运算符。 您的编辑现在显示出您要执行的操作:
db.collection.update(
{ "Events._id": ObjectId("53ae59883d0e63aa77f7b5b2") },
{ "$pull": { "Events": { "_id": ObjectId("53ae59883d0e63aa77f7b5b2") } } }
)
但是,包含_id
字段的数组似乎表明您使用的是猫鼬,因此ObjectId值是自动转换的:
Model.update(
{ "Events._id": "53ae59883d0e63aa77f7b5b2" },
{ "$pull": { "Events": { "_id": "53ae59883d0e63aa77f7b5b2" } } },
function(err,numAffected) {
}
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.