【发布时间】:2014-09-15 10:55:30
【问题描述】:
我知道 get_or_create 现在已被弃用,取而代之的是使用 upsert,但我如何让 update_one 返回对象而不是修改的对象数量,如果我不这样做,我可以只检索一个对象吗?不想更新任何东西?
例如
Model.objects.get_or_create(first_name='John', last_name='Potter', age=40)
# assuming that first_name + last_name + age are enough to uniquiely indentify a person
返回一个模型对象(如果不存在则返回新对象,如果存在则返回现有对象)。使用新方法相当于什么?
Model.objects(first_name='John', last_name='Potter', age=40).update_one(upsert=True)
# returns number of objects (1)
Model.objects(first_name='John', last_name='Potter', age=40).update_one(set__first_name='John', set__last_name='Potter', set__age=40,upsert=True)
# returns number of objects (1)
有没有办法让它返回对象,并使其行为与get_or_create 完全一样?
我在documentation 中找不到如何执行此操作
【问题讨论】:
标签: django mongoengine