【问题标题】:N1QL query on array数组上的 N1QL 查询
【发布时间】:2018-01-10 13:01:42
【问题描述】:

我的 Couchbase 文档数据库中有以下结构:

{
  "documentType": "connection",
  "id": "09690237-9ef5-4381-93dc-7312f7417f82",
  "entities": [
    {
      "id": "8a282f31-5d6c-4741-909f-a84ef48571af",
      "type": "item",
    },
    {
      "id": "01f6a9eb-0d7e-4495-a90f-f96a38aef621",
      "type": "group",
    }
  ]
}

数据库中的每个“组”都存在许多“项目”。我想检索特定组 ID 的所有项目的列表。例如,如果提供“01f6a9eb-0d7e-4495-a90f-f96a38aef621”,我需要类似:

[
  "8a282f31-5d6c-4741-909f-a84ef48571af",
  "9a282f31-5d6c-4741-909f-a84ef48571af",
  ...
]

但是,我在单独的小结构中得到了很多称为“实体”的小数组,我无法将它们组合起来。这是我目前的 N1QL 查询:

select array entity.id for entity in entities.entities when entity.type = 'item' end as entity
from entities
where entities.documentType = 'connection'
      and any entity within entities satisfies entity.id = '01f6a9eb-0d7e-4495-a90f-f96a38aef621'
                                           and entity.type = 'group' end

我是 N1QL 的新手,因此也将不胜感激。

谢谢。

【问题讨论】:

    标签: couchbase n1ql


    【解决方案1】:
    select ARRAY_FLATTEN(ARRAY_AGG(ARRAY entity.id for entity in entities.entities when entity.type = 'item' end),2) as entity
    from entities
    where entities.documentType = 'connection'
          and any entity IN entities satisfies entity.id = '01f6a9eb-0d7e-4495-a90f-f96a38aef621' and entity.type = 'group' end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多