Node.js 使用mongodb,如何根据对象的一个属性从数组中删除对象?
我有一个包含一个对象数组的mongodb集合,我想根据它们的属性删除一个或多个数组对象 我的收藏中的示例文档:Node.js 使用mongodb,如何根据对象的一个属性从数组中删除对象?,node.js,mongodb,Node.js,Mongodb,我有一个包含一个对象数组的mongodb集合,我想根据它们的属性删除一个或多个数组对象 我的收藏中的示例文档: nickname: "Bob", isLibrarian: false, region: "South America", favoriteBooks: [ { title: "Treasure Island", author: "Robert Louis Stevenson" }, { title: "The G
nickname: "Bob",
isLibrarian: false,
region: "South America",
favoriteBooks: [
{
title: "Treasure Island",
author: "Robert Louis Stevenson"
},
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald"
},
{
title: "Kidnapped",
author: "Robert Louis Stevenson"
}
]
在本例中,如何从集合中的每个文档中删除favoriteBook数组中作者与“Robert Louis Stevenson”匹配的所有对象
这样之后,该用户文档将
nickname: "Bob",
isLibrarian: false,
region: "South America",
favoriteBooks: [
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald"
}
]
而收藏中的其他文件也将由史蒂文森对书籍进行同样的删减
提前感谢您的任何见解!我喜欢MongoDB,但我想知道我是否在这里吃得太多了……MongoDB的下面一行将帮助您删除与特定作者匹配的书籍
db.collection.update(
{},
{$pull:{favoriteBooks:{author:"Robert Louis Stevenson"}}},
{multi:true}
);
添加了multi:true,因为OP指定应该对集合中的所有文档执行此操作,并格式化了代码。似乎不起作用。书本对象仍保留在favoriteBooks数组中。哎呀,它毕竟可以工作!至少在这个人为的例子中。现在来看看为什么它不能与我的更复杂的集合(使用相同的结构构造)一起工作。谢谢