我想从成员中删除member2。我看到了脚本
ctx._source.list_data.removeIf{list_item -> list_item.list_id == remove_id}
对于列表,但在我的情况下,它不起作用。那可能吗?
"_index": "test",
"_type": "test",
"_id": "5",
"_score": 1.0,
"_source": {
"id": "1",
"description": "desc",
"name": "ss",
"members": {
"member1": {
"id": "2",
"role": "owner"
},
"member2": {
"role": "owner",
"id": "3"
}
}
}
}
您可以使用更新API:
POST test/_update/5
{
"script": "ctx._source.members.remove('member2')"
}
removeIf用于列表。您的members2是对象类型,因此您需要使用remove
{
"script": "if(ctx._source.members.member2.id=='3')
ctx._source.members.remove('member2')"
}