使用elasticsearch.js(node.js)SDK,我们可以使用client.index({ ... })
来向上插入文档(如果不存在,则插入该文件,否则进行更新)。
但是,如果我只想更新特定字段,例如:
client.updateByQuery({
index: 'test',
body: {
query: { match: { _id: '1' } },
script: { inline: 'ctx._source.hello = "world"' }
}
})
现在,我想创建一个ID为1的文档,如果它的字段hello设置为world时不存在,或者如果id为1的文档存在,则将其hello字段更新为world。这可能吗?怎么样?
答案 0 :(得分:0)
您可能正在寻找update API with doc as update。用途如下:
POST test/_update/1
{
"doc":{
"hello": "world"
},
"doc_as_upsert": true
}