mongodb 查询集保存不更新,仅插入
在我的Flask应用中:
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。
我遇到了一个错误,提示我在更新之前需要先保存(我在Flask应用中使用的是mongoengine)。
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()