Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在节点Mongodb中按id删除Json对象?_Node.js_Mongodb_Mongodb Query - Fatal编程技术网

Node.js 如何在节点Mongodb中按id删除Json对象?

Node.js 如何在节点Mongodb中按id删除Json对象?,node.js,mongodb,mongodb-query,Node.js,Mongodb,Mongodb Query,我有一个名为“EVENTS”的Mongodb集合,在该集合中我有一个数组对象,如下所示: { "Events":[ { "_id":"53ae59883d0e63aa77f7b5b2", "Title":"Title Blank", "Desc":"Description Blank", "Date":"2014-06-04 00:30", "Link":"http://googlepar

我有一个名为“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"
          }
       ]
    }

关于

如果您真正想做的只是“清空”数组,那么您只需要使用带有
.update()
的运算符,并将数组“设置”为空数组:

db.collection.update({},{“$set”:{“事件”:[]},{“mutli”:true})
因此,
.update()
操作需要一个“查询”来选择集合中的文档,如图所示的空白查询将选择所有内容。“更新”部分包含的操作仅用空数组替换当前“事件”字段

这里的“multi”选项确保将此应用于匹配的每个文档。默认值为
false
,只更新匹配的第一个文档

有关删除选定数组元素的更具体操作,请查看运算符。现在,您的编辑显示,这就是您要执行的操作:

db.collection.update(
{“事件id”:ObjectId(“53ae59883d0e63aa77f7b5b2”),
{“$pull”:{“Events”:{“_id”:ObjectId(“53ae59883d0e63aa77f7b5b2”)}}
)
但是,如果将数组包含在
\u id
字段中,则表明您正在使用mongoose,因此ObjectId值将自动转换为:

Model.update(
{“事件编号”:“53ae59883d0e63aa77f7b5b2”},
{“$pull”:{“事件”:{“_id”:“53ae59883d0e63aa77f7b5b2”}},
功能(错误,未受影响){
}
);

非常接近,但我不想清空数组,我只是想删除一个id为的对象。很抱歉这个误导性的例子:)@Pizzy213codes那么你想做什么?看起来您确实在试图通过问题清空数组。也许你应该更新它来说明你实际上在做什么。再次为我之前给出的示例感到抱歉,我刚刚更新了问题,请看:)@Pizzy213codes并回答。我确实提到了
$pull
操作符。现在有一个如何使用它的示例。@neilLuun如果我可以问一下,我如何处理按钮单击之类的事件,以便能够调用node.js中的函数?