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