2012-07-10 9 views
9

本当に明白なものを紛失しているはずです。しかし、私はmongoengineを使ってセットを表現する方法を見つけることができないようです。Pythonのmongoengineで重複しないListField

class Item(Document): 
    name = StringField(required=True) 
    description = StringField(max_length=50) 
    parents = ListField(ReferenceField('self')) 

i = Item.objects.get_or_create(name='test item')[0] 

i2 = Item(name='parents1') 
i2.save() 
i3 = Item(name='parents3') 
i3.save() 
i.parents.append(i2) 
i.parents.append(i2) 
i.parents.append(i3) 
i.save() 

上記のコードは、i1の親フィールドにi2の重複エントリを作成します。 mongoengineの関係のような外国のキーをどう表現しますか?代わりに、その後appendを使用してsaveを使用して、あなたはアトミックな更新と$ addToSetメソッドを使用することができ、MongoEngineはアップデートにそれを変換させるの

答えて

関連する問題