Database 在Couchbase中使用N1QL从对象的对象获取所有唯一键

Database 在Couchbase中使用N1QL从对象的对象获取所有唯一键,database,couchbase,n1ql,Database,Couchbase,N1ql,如果Couchbase中的文档都有一个属性foo,它是对象的对象,所有条如下: { foo: { bar_1: { prop1: "hello", prop2: "world" }, bar_2: { prop1: "i'm", prop2: "confused" } } } 使用N1QL,如何选择所有唯一的条形图(仅选

如果Couchbase中的文档都有一个属性foo,它是对象的对象,所有条如下:

{
    foo: {
        bar_1: {
            prop1: "hello",
            prop2: "world"
        },
        bar_2: {
            prop1: "i'm",
            prop2: "confused"
        }
    }
}
使用N1QL,如何选择所有唯一的条形图(仅选择键而不是条形图的值)

我目前正在使用“选择不同的原始对象”\u NAMESfoo FROM。。。它返回一个数组数组,每个数组都包含来自每个foo的键列表。然后,我将其解析为一个C字符串[],并将其展平并进行区分

DISTINCT意味着当文档具有完全相同的条时,它们不会被复制,但通常情况并非如此。这意味着我目前在C中执行了无需编码的代码,我确信在N1QL中有一种很好的方法来完成这一切

   SELECT DISTINCT RAW n
   FROM default d
   UNNEST OBJECT_NAMES(d.foo) AS n;