mongodb queryset save不做更新,只插入

时间:2013-03-05 09:05:50

标签: python mongodb flask mongoengine

在我的烧瓶应用程序中:

class places(db.Document):
    meta = {
        'collection': 'places',
        'allow_inheritance': False,
    }
    name = db.StringField(max_length=200, required=True)
    loc= db.GeoPointField(required=True)

x = places(loc=[-87,101], name="test")
places.save(x)

但是,我只想插入文件,如果它是新的,否则我想更新该行。 我不确定如何使用upsert / update。

我遇到一个错误,告诉我在更新前保存(我在我的烧瓶应用程序中使用mongoengine)。

1 个答案:

答案 0 :(得分:0)

我认为你不能这样做。 但你可以尝试下一个:

首先尝试从db

获取对象
place = places.objects(name="test").first()
if place:
    #update here
    place.loc = [88,102]
else:
    #create new here
    place = places(loc = [-87,101], name="test")
place.save()