25

私は Django で mongoengine を使用しています。
これが私のドキュメント 定義です。

class Location(mongoengine.Document):  
    user_id = mongoengine.IntField(required=True)  
    point = mongoengine.GeoPointField(required=True)

私はこれをしたい:
与えられた auser_idと a point:
this を持つドキュメントがない場合は、 anduser_idで作成して保存します。それ以外の場合は、ドキュメントをwith で 更新します。 mongoengine を使用して 1 つのステートメントでこれを行うことはできますか?user_idpoint
user_idpoint

4

4 に答える 4

8

バージョン 0.9 以降、これを行う新しい方法があります (ここで説明されています)。

location = Location.objects(user_id=user_id).modify(upsert=True, new=True, set__point=point)

作成または更新されたオブジェクトを返します。

于 2015-01-20T12:56:40.487 に答える
5

これは私が思いついたものです:

location = Location.objects.get_or_create(user_id=user_id)[0]  
location.point = point  
location.save()
于 2011-12-09T15:45:33.787 に答える