如果不存在则将对象附加到数组elasticsearch
Append object to array if not exists elasticsearch
我有以下代码
body: {
script: {
source: 'ctx._source.permissions.add(params.permission);',
params: {
permission
}
}
}
权限对象是附加到权限数组的对象。
权限对象将有一些 id 属性。所以权限对象会是这样的:
{
id: 'some unique value',
name: 'permission name
}
如果该数组中没有具有 属性 id 的权限对象,我该如何添加它,所以如果该数组具有一个具有 params.id 值的对象,我将尝试添加,添加应该会失败...
尝试以下 source
:
"source":"List perm=ctx._source.permissions; if(perm!=null && !perm.stream().anyMatch(p-> p.id.equals(params.permission.id))){ctx._source.permissions.add(params.permission)}
我建议您阅读 painless 文档。
我有以下代码
body: {
script: {
source: 'ctx._source.permissions.add(params.permission);',
params: {
permission
}
}
}
权限对象是附加到权限数组的对象。 权限对象将有一些 id 属性。所以权限对象会是这样的:
{
id: 'some unique value',
name: 'permission name
}
如果该数组中没有具有 属性 id 的权限对象,我该如何添加它,所以如果该数组具有一个具有 params.id 值的对象,我将尝试添加,添加应该会失败...
尝试以下 source
:
"source":"List perm=ctx._source.permissions; if(perm!=null && !perm.stream().anyMatch(p-> p.id.equals(params.permission.id))){ctx._source.permissions.add(params.permission)}
我建议您阅读 painless 文档。