Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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
Javascript 从mongodb中的数组中删除元素_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript 从mongodb中的数组中删除元素

Javascript 从mongodb中的数组中删除元素,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,假设我在mongoDB中有一个对象: collection_name: book_info {_id:"121as", "book_num":"12a", "book_name":"lotr", "info":[ {"borrowerAddress":["NY","Delhi"] }, {"borrowe

假设我在mongoDB中有一个对象:

collection_name: book_info

{_id:"121as", "book_num":"12a", "book_name":"lotr", "info":[ {"borrowerAddress":["NY","Delhi"] }, 
{"borrowerAddress":["SI","Ghana"] } ] }
我想从信息中删除一个元素NY

为此,我可以从book_信息集合中获取对象,并在数组中找到元素时应用循环和删除,然后将数据保存到数据库中

但我想做的是同时删除和更新,而不必获取数据并再次循环和更新

另外,如果可以进行直接的数据库操作,根据提供的解决方案,有人能告诉我,获取数据、应用循环和删除数据是有效的还是直接从数据库中删除数据更快

如果有人需要任何进一步的信息,请告诉我

补充问题:

doc1: {_id:"121as", "book_num":"12a", "book_name":"lotr", "info":[ {"borrowerAddress":["NY","Delhi"] }, 
{"borrowerAddress":["SI","Ghana"] } ] }

doc2: {_id:"213s", "book_num":"1c", "book_name":"hp", "info":[ {"borrowerAddress":["NY","Delhi"] }, 
{"borrowerAddress":["SI","Ghana"] } ] }

假设我在一个图书信息集合中有多个文档,具有不同的图书名称和详细信息,并且我想删除图书的文档。\u name:lotr only,我从文档中删除地址NY。

您可以尝试使用$pull操作符更新查询,以从数组中删除匹配的元素,$[]位置用于信息数组中的所有元素

db.collection.update(
  { "info.borrowerAddress": "NY" },
  { $pull: { "info.$[].borrowerAddress": "NY" },
  { multi: true }
})
假设我在一个图书信息集合中有多个文档,具有不同的图书名称和详细信息,并且我想删除图书名称的文档:仅限lotr,我从文档中删除地址NY


您可以尝试使用$pull运算符更新查询以从数组中删除匹配的元素,$[]位置用于info数组中的所有元素

db.collection.update(
  { "info.borrowerAddress": "NY" },
  { $pull: { "info.$[].borrowerAddress": "NY" },
  { multi: true }
})
假设我在一个图书信息集合中有多个文档,具有不同的图书名称和详细信息,并且我想删除图书名称的文档:仅限lotr,我从文档中删除地址NY


非常感谢你的帮助。但我无法理解发生了什么。你能告诉我,到底发生了什么事吗?我能问一下与此相关的问题吗?或者我应该创建新问题?是的,您可以在此处询问是否与此问题相关。我已编辑了我的原始问题,并添加了其他问题。你能看一下吗?如果需要任何其他信息,请让我知道。好的,在回答中添加了解决方案。非常感谢您的帮助。但我无法理解发生了什么。你能告诉我,到底发生了什么事吗?我能问一下与此相关的问题吗?或者我应该创建新问题?是的,您可以在此处询问是否与此问题相关。我已编辑了我的原始问题,并添加了其他问题。你能看一下吗?如果需要任何其他信息,请让我知道。好的,在回答中添加了解决方案。