我有一个如下所示的模型:
class TestDoc(Document):
name = StringField()
friends = ListField(StringField())
address_book = DictField()
我希望每当 friend 列表发生变化时自动更新地址簿字段。如何在原子操作中修改这两个字段?我在文档中找不到任何修饰符:
https://mongoengine-odm.readthedocs.org/en/latest/guide/querying.html#atomic-updates
这对字典进行原子更新。 谢谢!
最佳答案
当您每次从 friends
字段执行 $push
或 $pull
时,您还必须在同一更新中修改 地址簿
例如:
TestDoc(name="Sue", friends=["Bob", "Sarah"],
address_book={"Bob": "1 the farm", "Sarah": "Owl house"}).save()
TestDoc.objects(name="Sue").update(pull__friends="Bob",
unset__address_book__Bob=1)
关于dictionary - Mongoengine - 如何自动更新字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16101245/