json - 如何从N1QL中的数组中删除元素

标签 json couchbase sql++

我是 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

关于json - 如何从N1QL中的数组中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62552132/

相关文章:

json - 在序列化时将字符串属性值转换为 base64 对于 ASP.NET Core 3.0+

javascript - 如何删除 JSON 对象中的对象?

Couchbase N1QL 连接查询 - 语法错误

nosql - 将空文档添加到 Couchbase 存储桶

Couchbase 5.5 : Why does putting '\\' in meta. id 使搜索更快吗?

json - 如何从 typescript 中的.json文件中读取数据

javascript - itemfilereadstore 从 json 文件读取

android - 来自 Couchbase Lite 的 React-Native Android 图像源

elasticsearch - 双向 xdcr elasticsearch 和 couchbase