I have not been able to find anything on this online or in the docs:
When you unnest an array in a N1QL query, how can you also get the element number for each unnested / flattened element in the array? In the case below for each specChallenge?
SELECT
d.accountId
,specChallenge.order
FROM data d
UNNEST OBJECT_NAMES(d.challengeArchive) as challenge
UNNEST d.challengeArchive.[challenge].challenges as specChallenge
SELECT d.accountId, ca.name, sc.`order`, UNNEST_POS(sc) AS upos
FROM data AS d
UNNEST OBJECT_PAIRS(d.challengeArchive) AS ca
UNNEST ca.val.challenges AS sc;
users is object
FOR n:v IN users END
iterates each field of users (n holds name, v holds value)
users is ARRAY
FOR pos:v IN users END
iterates each element of users (pos holds position, v holds value)
UNNEST can be done only on ARRAY, if need on object like above transform object into ARRAY using OBJECT_* functions.
It works!! How did you know that? I still can’t find it in the docs, is it undocumented?
Thanks you saved my day / days.
PS: Not needed for objects, there the OBJECT_PAIRS give me all I need.
Thanks again.