Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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,如何根据对象的一个属性从数组中删除对象?_Node.js_Mongodb - Fatal编程技术网

Node.js 使用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

我有一个包含一个对象数组的mongodb集合,我想根据它们的属性删除一个或多个数组对象

我的收藏中的示例文档:

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数组中。哎呀,它毕竟可以工作!至少在这个人为的例子中。现在来看看为什么它不能与我的更复杂的集合(使用相同的结构构造)一起工作。谢谢