我有一个包含对象数组的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"
}
]
在这个例子中,如何从我的集合中的每个文档中删除作者匹配“Robert Louis Stevenson”的favoriteBook数组中的所有对象?
之后这个用户文档将是
nickname: "Bob",
isLibrarian: false,
region: "South America",
favoriteBooks: [
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald"
}
]
和该系列中的其他文件同样会被史蒂文森修剪过。
提前感谢您的任何见解!我喜欢MongoDB,但我想知道我是否咬过的东西比我在这里可以咀嚼...
答案 0 :(得分:2)
下面的mongodb系列将帮助您删除与特定作者相匹配的图书
db.collection.update(
{},
{$pull:{favoriteBooks:{author:"Robert Louis Stevenson"}}},
{multi:true}
);