嗨,下面是我的文件
"catid": [
514500
],
"studentid": 5282439,
在这个catid字段中,我想添加新元素543,其中studentid = 5282439
我正在尝试以下查询,但它给了我一个例外
POST /parts/_update_by_query
{
"query": {
"match": {
"studentid": 5282439
}
},
"script" : "ctx._source.catid+= [543 ]"
}
我收到以下异常,
"root_cause": [
{
"type": "class_cast_exception",
"reason": "java.lang.String cannot be cast to java.util.Map"
}
],
答案 0 :(得分:3)
- >如果上述答案无效,请试试这个
POST /parts/_update_by_query
{
"query": {
"match": {
"studentid": 5282439
}
},
"script" : {
"lang":"painless",
"inline": "ctx._source.catid.add(params.newsupp)",
"params":{
"newsupp":5302
}
}
}
答案 1 :(得分:2)
脚本部分不正确,请将其更改为此(即将脚本移至script.inline
属性):
POST /parts/_update_by_query
{
"query": {
"match": {
"studentid": 5282439
}
},
"script" : {
"inline": "ctx._source.catid += [543 ]"
}
}