2

次のようなモデルがあります。

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

辞書のアトミック更新を行います。ありがとう!

4

1 に答える 1

3

フィールドから$pushまたはを実行するたびに、同じ更新で次のように変更する必要があります。$pullfriendsaddress_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)
于 2013-04-19T10:02:20.057 に答える