0

我有一个包含对象数组的 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 数组中其作者与“罗伯特·路易斯·史蒂文森”匹配的所有对象?

所以之后这个用户文档将是

nickname: "Bob",
isLibrarian: false,
region: "South America",
favoriteBooks: [
    {
        title: "The Great Gatsby",
        author: "F. Scott Fitzgerald"
    }
]

史蒂文森的书籍和收藏中的其他文件同样会被删减。

提前感谢您的任何见解!我喜欢 MongoDB,但我想知道我是否在这里咬得比我能咀嚼的更多……

4

1 回答 1

2

以下 mongodb 行将帮助您删除与特定作者匹配的书籍

db.collection.update(
   {},
   {$pull:{favoriteBooks:{author:"Robert Louis Stevenson"}}},
   {multi:true}
);
于 2013-03-04T04:56:31.453 回答