【发布时间】:2016-07-07 23:35:20
【问题描述】:
我有一个使用 MongoEngine 的文档和一个嵌入文档
class Sub(EmbeddedDocument):
Id = StringField()
User = StringField()
Value = StringField()
class Main(Document):
Value = StringField
Values = ListField(EmbeddedDocumentField(Sub))
当我将新的嵌入文档添加到 Main 的“值”字段中时,我会为列表而不是集合生成一个唯一的 id,在 Main 的“值”中可以有多个 Sub,每个来自不同的用户,我正在尝试获取 MongoEngine根据 ID 和用户从列表中自动删除“子”值。
我尝试为 Main 运行 select,然后为 Sub 本身运行 update_one
Main.objects(id=main_id).update_one(pull__values__id=sub_id)
但这一切似乎返回的是数组内部的索引。我知道我可以简单地拉出 Main,然后通过 Values 找到元素并将其删除,但我试图保持这个原子性,并且在拉取、迭代、更新过程中将某些东西添加到 sub 的可能性较小。
【问题讨论】:
标签: python mongodb mongoengine