Tan*_*rax 3 python mongodb mongoengine
我有一个使用MongoEngine的文档和嵌入式文档
class Sub(EmbeddedDocument):
Id = StringField()
User = StringField()
Value = StringField()
class Main(Document):
Value = StringField
Values = ListField(EmbeddedDocumentField(Sub))
Run Code Online (Sandbox Code Playgroud)
当我将新的嵌入文档添加到Main的'Values'字段中时,我会在列表中生成一个唯一的id而不是集合.在Main的'values'中可以有多个Sub来自不同的User,我试图让MongoEngine原子地删除列表中的"Sub"值,基于ID和用户.
我试图为Main运行一个select,然后为Sub本身运行update_one
Main.objects(id=main_id).update_one(pull__values__id=sub_id)
Run Code Online (Sandbox Code Playgroud)
但所有这些似乎返回的是数组内部的索引.我知道我可以简单地拉Main,并通过值找到元素并删除它,但我试图保持这种原子,并且在拉,迭代,更新过程中更少有机会添加到sub.
只需使用EmbeddedDocument类即可传递 sub_id
Main.objects(id=main_id).update_one(pull__values__id = Sub(Id=sub_id).Id )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1778 次 |
| 最近记录: |