当您需要更新或插入时,有一个常见的用例。例如:
obj = db['data'].find_and_modify(
{
'Name': data['Name'],
'SourcePage': data['SourcePage'],
},
data,
upsert=True
)
当然可以将此请求拆分为GET
然后PATCH
或INSERT
,但也许有更好的方式?
P.S。前夕提供了一些很好的功能,如文档版本和元数据(_created,_updated等)
答案 0 :(得分:5)
upsert
支持现已成为upcoming release的一部分。
一个人不必做任何不同的事情。该功能已打开""默认情况下。因此,如果用户尝试PUT
不存在的项目,则将创建新项目。有效负载中发送的id
字段将被忽略。
如果用户不需要此功能,则用户需要明确将UPSERT_ON_PUT
设置为False
。现在,用户获得了#34; old"行为回来了。即,当用户尝试PUT
不存在的项目时,会返回404
。