说我们有:
curl -XPOST "http://localhost:9200/t/t/1" -d'
{
"hobbies" : ["a", "b"]
}'
Run Code Online (Sandbox Code Playgroud)
我知道我可以这样做来补充爱好:
curl -XPOST "http://localhost:9200/t/t/1/_update" -d'
{
"script" : "ctx._source.hobbies += hobby",
"params" : {
"hobby" : "c"
}
}'
Run Code Online (Sandbox Code Playgroud)
但是,如果业余爱好不是'c'而是'b',我该怎么做,这样我就不会以[“ a”,“ b”,“ b”]结束爱好了?因此,如果“ c”还不是一个爱好,它只会附加“ c”吗?
您可以通过稍微修改OP中的脚本来实现相同目的
范例:
curl -XPOST "http://localhost:9200/t/t/1/_update -d'
{
"script" : " if(! ctx._source.hobbies.contains(hobby)){ ctx._source.hobbies += hobby }",
"params" : {
"hobby" : "c"
}
}'
Run Code Online (Sandbox Code Playgroud)
上面的示例假定存在现场爱好,并且是一个列表,否则您将需要更多的逻辑来处理这些爱好。
| 归档时间: |
|
| 查看次数: |
1911 次 |
| 最近记录: |