json - N1QL - 在 CouchBase 中查询多级嵌套的 JSON 数据

标签 json couchbase n1ql

如何通过查询多级嵌套值来选择整个 JSON 文档?这是我的 JSON 示例:

{
  "id": "6316194187233559482",
  "type": "Hotel",
  "attributes": [
    {
      "country": "Germany",
      "officialNames": [
          {
            "name": "The Ritz-Carlton, Berlin",
            "language": "GER"
          }
      ],
      "streetsAndCities": [
          {
              "city": "Berlin",
              "cityLanguage": "GER",
              "street": "Potsdamer Platz ",
              "streetLanguage": "GER"
          }
      ]   
    }
  ]
}

我想查询它的“名称”属性。我已经尝试过 UNNEST 函数,并且我可以毫无问题地访问第一级嵌套数据,即“officialNames”。但我不知道如何访问“名称”属性。按位置引用它,例如:

SELECT * FROM document 
UNNEST attributes as attributes
WHERE attributes[0].officialNames[0].name = "The Ritz-Carlton, Berlin"

不会起作用,因为 JSON 中每个属性的位置都可以更改。

最佳答案

“JSON 中每个属性的位置都可以改变”是什么意思?您的意思是“attributes”、“officialNames”和“streetsAndCities”数组可以有其他条目,并且您想搜索所有条目吗?

如果是,请查看此处的 ANY 运算符: https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/collectionops.html

关于json - N1QL - 在 CouchBase 中查询多级嵌套的 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53631253/

相关文章:

jquery - 如何使用 jQuery 修改 json 数组

java - Couchbase 中不区分大小写的文档 ID 匹配

python - Couchbase:python SDK "uppend"

Couchbase - 我什么时候应该使用 N1QL 和 Views?

mongodb - CouchBase NOSQL 宣布支持 JOIN。使用它们有什么缺点?

sql - 使用 couchbase N1QL 仅获取子文档

javascript - 将 JSON 传递给 MVC Controller ?

java - 现场级反序列化不适用于 jackson

javascript - 我只将最后一个元素添加到 JS 数组中

couchbase - 如何获取特定格式的 n1ql 查询响应?