Nested Array Index and Query

  1. I want to be able to get all unique label keys for all docs.
    Index:

CREATE INDEX idx3 ON bucket((distinct (array (distinct (array label for label in object_names((c.labels)) end)) for c in cat end)) WHERE (type = “cat”)

Query

Select labels
From `bucket` 
WHERE (`type` = "cat")
AND ANY c in labels SATISFIES
    (ANY label in object_names((`c`.`labels`)) SATISFIES tag IS NOT NULL END)
END

SAMPLE DOC

{
  "id":"blah",
  "group":"test1",
  "type":"cat",
    "cat": [
      {
        "id": "blah1",
        "label": {
          "l1": null
        },
      },
      {
        "id": "blah1",
        "label": {
          "l1": null,
          "l2": null
        },
      }
    ]
}
CREATE INDEX `idx3` ON `bucket` (type, ARRAY_DISTINCT(ARRAY_FLATTEN(ARRAY (ARRAY OBJECT_NAMES(l) FOR l IN c.label END ) FOR c IN cat END,2))) WHERE ( `type` = "cat");

SELECT DISTINCT RAW  v
FROM `bucket` AS b
UNNEST ARRAY_DISTINCT(ARRAY_FLATTEN(ARRAY (ARRAY OBJECT_NAMES(l) FOR l IN c.label END ) FOR c IN b.cat END,2)) AS v
WHERE b.type = "cat";

I not getting any results
[
null
]

and the index only have 1 item. I am using the doc above/

I got working, the object_name should be moved to the c.labels,

SELECT DISTINCT RAW v
FROM bucket AS b
UNNEST ARRAY_DISTINCT(ARRAY_FLATTEN(ARRAY (ARRAY l FOR l IN OBJECT_NAMES(c.label) END ) FOR c IN b.cat END,2)) AS v
WHERE b.type = “cat”;

CREATE INDEX idx3 ON bucket(type,array_distinct(array_flatten(array array l for l in object_names((c.label)) end for c in cat end, 2))) WHERE (type = “cat”)

Thanks

CREATE INDEX `idx3` ON `bucket` (type, ARRAY_DISTINCT(ARRAY_FLATTEN(ARRAY OBJECT_NAMES(c.label) FOR c IN cat END,2))) WHERE ( `type` = "cat");

SELECT DISTINCT RAW  v
FROM `bucket` AS b
UNNEST ARRAY_DISTINCT(ARRAY_FLATTEN(ARRAY OBJECT_NAMES(c.label) FOR c IN b.cat END,2)) AS v
WHERE b.type = "cat";