【发布时间】:2020-02-27 12:01:31
【问题描述】:
我正在使用 mongodb shell 命令,我可以使用db.collection.find(findQuery) 获取集合数据。
在我的示例中,我有 Books 和 Authors 表,它们之间存在多对多关联。
从书籍表中查看的示例数据是(此数据是从邮递员查看的),
{"authors": [
{
"id": "123",
"name": "Sivakumar"
},
{
"id": "124",
"name": "Ram"
}
],
"id": "456",
"title": "Believe Yourself"
}
我可以删除db.authors.remove({name:"Ram"}) 的作者条目。这会删除 Ram 条目,但我必须使用 shell 命令删除与书籍关联的所有作者条目。我没有找到任何有关在 shell 命令中填充的文档。如何在 mongo shell 命令中使用 find 和 populate 删除作者条目。
【问题讨论】:
-
您需要迭代
authors,删除书籍,然后删除作者,如下所示:db.authors.find({name:"Ram"}).forEach(function(doc){db.books.remove({book:book_id});db.authors.remove(doc);})
标签: mongodb mongodb-query sh mongoose-populate