Mongoengine - 如何自动更新字典?

时间:2013-04-19 09:18:05

标签: dictionary updates mongoengine

我的模型看起来像这样:

class TestDoc(Document):
    name = StringField()
    friends = ListField(StringField())
    address_book = DictField()

我希望每当好友列表发生变化时,都会自动更新address_book字段。如何修改原子操作中的两个字段?我在文档中找不到任何修饰符:

https://mongoengine-odm.readthedocs.org/en/latest/guide/querying.html#atomic-updates

为字典进行原子更新。 谢谢!

1 个答案:

答案 0 :(得分:3)

当您从$push字段中执行$pullfriends时,您也会在同一更新中修改address_book,例如:

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)