elasticsearch - 如何从 Elastic Search 中的 json 字段中删除字段
问题描述
我想从成员中删除 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"
}
}
}
}
解决方案
removeIf 用于列表。您的 members2 是 object 类型,因此您需要使用 remove
{
"script": "if(ctx._source.members.member2.id=='3')
ctx._source.members.remove('member2')"
}
推荐阅读
- c# - 如何在 IEnumerator 中 waitwhile 或 waituntil 然后继续协程?
- javascript - 如何使 tx.executeSql() 函数与 async/await 同步?
- angular - 如何使用 httpClient get 方法从 Angular 7 的 OpenWeatherMap API 获取数据?
- python - 发生此错误。“TypeError:预期 int64,得到了 'float' 类型的 1e-07。” . 我能怎么做?
- python - 如何在 graph_tool 中找到具有属性值的相邻顶点
- angular6 - 如何在没有硬编码的情况下检查 Angular 当前路线?
- iframe - 从父页面中的 iFrame 打开 Fancybox3
- bash - 在'declare -p' 输出中,'--' 行是什么意思?
- docker - 如何配置 mariadb docker-compose 文件以使用 3306 以外的其他端口?
- swift - 如何以编程方式在 Xcode 中快速设置 UIPageViewController 的过渡样式?