我有一个看起来像的文件
{
date_at: '2020-10-01',
foo_id: 3,
value: 5
}
当date_at
与foo_id
被定义,文档被唯一地限定。
所以我想做些类似的事情
MyDocument.update_or_create(date_at=date_at, foo_id=foo_id, {value: some_value})
如果date_at and foo_id
存在具有给定文档的文档,请更新该文档,否则创建该文档。
为了更新或创建文档(ES称为“ upsert”),您需要通过更新API,并且该API需要文档ID。
选择与特定的文档date_at
和foo_id
将是的工作通过查询API更新,但该API不支持“upserting”(即创建或更新)。
因此,如果您的文档由date_at
和唯一定义foo_id
,我建议给它们提供包含这两个值的ID,例如2020-10-01:3
。这样做可以让您像这样利用更新API:
POST your-index/_update/2020-10-01:3
{
"doc": {
"value": "some_value",
"date_at": "2020-10-01",
"foo_id": 3
},
"doc_as_upsert": true
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句