我的数据:
"_source": {
"owner": "102195915017611526666",
"boxes": [
{
"box_id": "999",
"items": [
{
"item_id": "123",
"item_key": "x",
"item_value": "y"
}
]
},
{
"box_id": "888",
"items": []
}
]
我想将一个项目添加到项目Array中,该项目位于第二个框(box_id:888
)中。我知道如何将项目添加到boxs数组中,但是我做不到这一点。我已经研究过,但一无所获。我是Elasticsearch的新手。谢谢您的帮助
编辑: 我也尝试过:
{
"script" : {
"inline": "for (int i = 0; i<ctx._source.boxes.length; i++ ){if(ctx._source.boxes[i].box_id == '888') ctx._source.boxes[i].add(params.newitem);}",
"params" : {
"newitem" : {"item_key": "x", "item_value": "y", "item_id": "342246995990409"}
}
},
"query": {
"match": {
"owner": "102195915017611526666"
}
}
}
但是我遇到了这个错误:
"script_stack": [
"ctx._source.boxes[i].add(params.newitem);}",
" ^---- HERE"
],