我在Django与mongoengine合作,
这是我的文件定义:
class Location(mongoengine.Document):
user_id = mongoengine.IntField(required=True)
point = mongoengine.GeoPointField(required=True)
我想这样做:
给定一个user_id
和一个point
:
如果没有包含这个user_id
的文档,请使用user_id
和point
创建一个文档并保存它;
否则用user_id
和point
更新文档。
我可以在mongoengine的一个声明中这样做吗?
这就是我想到的:
注意,
get_or_create
现在被安排为不推荐使用,因为在MongoDB中没有事务支持,它无法确保原子性。首选方法是update加upsert:
更多关于MongoDB documentation上upserts的信息。
从0.9版(解释了here)开始,就有了一种新的方法:
它返回创建或更新的对象。
相关问题 更多 >
编程相关推荐