Ton*_*ony 9 python unique mongodb mongoengine
我必须遗漏一些非常明显的东西.但我似乎找不到使用mongoengine来表示集合的方法.
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()
Run Code Online (Sandbox Code Playgroud)
上面的代码将在i1的parents字段中为i2创建一个重复的条目.你怎么表达像mongoengine这样的关键外键?
Ros*_*oss 11
而不是使用append然后save让MongoEngine将其转换为更新,您可以使用原子更新和$ addToSet方法 - 请参阅更新mongoDB文档
所以在你的情况下你可以这样做:
i.update(add_to_set__parents=i2)
i.update(add_to_set__parents=i3)
i.update(add_to_set__parents=i2)
Run Code Online (Sandbox Code Playgroud)
支持addToSet和each当前不存在 - 请参阅:https://github.com/MongoEngine/mongoengine/issues/33
| 归档时间: |
|
| 查看次数: |
3871 次 |
| 最近记录: |