我有一个名为“ 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) {
}
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句