couchbase - 从嵌套的子文档 Couchbase 中选择特定字段

标签 couchbase n1ql

我在 couchbase 存储桶中有具有这种结构的文件:

    "name": {
      "grandfather": {
        "parent1": {
          "child1": [
            {
              .....
              "uid": "value1",
            },
            {
              "uid": "value2",
            }
          ],
        },
        "parent2": {
           "child2"
          [
            {
              "uid": "value3",
            }
          ],
        }
    }
}

我需要一个返回的查询

{
    {
      "uid": "value1",
    },
    {
      "uid": "value2",
    }
    {
      "uid": "value3",
    }
}  

.. 直觉上是这样的:

select grandfather.*.*.uid from name;

但是这个不行。如果有人能帮忙,谢谢

最佳答案

跨所有文档

WITH doc AS ( { "grandfather": { "parent1": { "child1": [ { "uid": "value1" }, { "uid": "value2" } ],
                                              "child2": [{ "uid": "value3"}]
                                            },
                                 "parent2": { "child1": [ { "uid": "value4" }, { "uid": "value5" } ],
                                              "child2": [{ "uid": "value6"}]
                                            }
                                }
              })
SELECT RAW c1
FROM doc AS a
UNNEST OBJECT_VALUES(a.grandfather) AS p
UNNEST OBJECT_VALUES(p) AS c
UNNEST c AS c1;

每个文档一个条目

WITH doc AS ( { "grandfather": { "parent1": { "child1": [ { "uid": "value1" }, { "uid": "value2" } ],
                                              "child2": [{ "uid": "value3"}]
                                            },
                                 "parent2": { "child1": [ { "uid": "value4" }, { "uid": "value5" } ],
                                              "child2": [{ "uid": "value6"}]
                                            }
                                }
              })
SELECT ARRAY_FLATTEN(ARRAY (ARRAY cv FOR cn:cv IN pv END) FOR pn:pv IN a.grandfather END,3) AS names
FROM doc AS a;

关于couchbase - 从嵌套的子文档 Couchbase 中选择特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71757702/

相关文章:

Couchbase 无可用索引

couchbase - 这个 couchbase 索引有什么问题?

javascript - Sync-gateway 返回此错误 401 Login required 是什么意思?

node.js - 如何通过cbq为Couchbase服务器中具有密码认证的存储桶创建索引?

couchbase - 使用 N1QL 访问 Couchbase 中的内部元素

database - 在 couchbase 中减去日期?

c# - Couchbase 4.5 返回部分文档

ios - 在 IOS 8.3 中可以找到 Couchbase lite 位置的位置是什么?

couchdb - 映射/减少 Couchbase 和 CloudAnt 之间的差异

php - `sudo pecl install couchbase` 给出错误 `ERROR: failed to mkdir/usr/local/Cellar/php/7.3.8/pecl/20180731`