1

在我的烧瓶应用程序中:

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)。

4

1 回答 1

0

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

首先尝试从数据库中获取对象

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()
于 2013-03-05T09:16:21.670 回答