【发布时间】:2021-09-15 03:02:49
【问题描述】:
下午。我希望你能帮助解决一个问题。我正在使用创建一个 Flask 应用程序并使用 pymongo,我需要从一个集合中多个文档的多个数组中删除一个奇异数组值。我在“食谱”集合中有食谱文档,每个文档中有一个数组(“类别”),长度可以在 1 到 3 个值之间。我在我的网站的管理部分中有一个可用的功能,允许从“类别”集合中删除一个类别,因此,我想删除“类别”数组中该类别值的任何实例在食谱“集合”中的任何食谱文档上。
我已经设法在一个文档上做到这一点:
mongo.db.recipes.update(
{"_id": ObjectId("60df2eec9df14e58d0c698c8")},
{"$pull": {"category": category_id}}
)
但还没有对整个集合进行管理我已经确定我需要在集合上使用 $all 和 $pull 运算符,使用“update_many”查询并且到目前为止已经尝试过:
mongo.db.recipes.update_many({"category": {"$all": {"$pull": {"category": category_id}}}})
mongo.db.recipes.update_many({"$all": {"$pull": {"category": category_id}}})
mongo.db.recipes.update_many({"category": {"$pullAll": {"category": category_id}}})
它们都不起作用。我不断收到错误消息:
TypeError: update_many() missing 1 required positional argument: 'update'
任何帮助将不胜感激。
【问题讨论】:
标签: arrays mongodb flask mongodb-query pymongo