json - 如何从 N1QL 中的数组中删除元素
问题描述
我是 N1QL 的新手,我想从数组中删除匹配的字符串。
这是我需要的称为检查的数组:
"job_1": {
"inspection": ['11','22','33','44'] //This is Array
},
"job_2": {
"inspection": ['22','33','44'] //This is Array
},
"job_3": {
"inspection": ['11','22'] //This is Array
}
我想从位于每个作业内的所有 3 个数组中删除“22”(我想删除的值可能不存在于检查数组中):
我如何使用删除查询删除它,有人可以帮我查询吗?
先感谢您!
解决方案
使用 WHERE 子句更新具有所需值的文档。之后使用 ARRAY 构造来形成新的 ARRAY 并分配它。您还可以使用 ARRAY 函数。
UPDATE default AS d
SET d.inspection = ARRAY v FOR v IN d.inspection WHEN v != "22" END
WHERE "22" IN d.inspection;
或者
UPDATE default AS d
SET d.inspection = ARRAY v FOR v IN d.inspection WHEN v != "22" END
WHERE ANY v IN d.inspection SATISFIES v = "22" END;
参考
https://blog.couchbase.com/working-json-arrays-n1ql/ https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/indexing-arrays.html https://docs .couchbase.com/server/current/n1ql/n1ql-language-reference/update.html https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/arrayfun.html
推荐阅读
- java - 扫描仪使用分隔符获取模式
- http - 通过 HTTP 发送压缩文件 (gzip) 与编码混淆
- excel - 按行值比较 Excel 工作簿中的工作表并突出显示差异
- c# - c# renci ssh 命令输出因客户端而异
- html - 单击图像并在交换时通过 CSS 添加链接
- html - 页脚与媒体查询重叠的内容
- python - 在 os.walk() 中使用 f.replace() 和 os.rename() 在 Python 中批量重命名文件和文件夹
- java - 平均运行时间远低于 1 次运行时间
- ruby-on-rails - 无法要求将 gem 加载为 add_development_dependency
- python - 使用参数从 bash 脚本顺序调用多个 python 脚本