SELECT user_list FROM default
WHERE ANY v IN OBJECT_NAMES(`user_list`) SATISFIES v = "user:1" END
AND ANY u IN OBJECT_VALUES(`user_list`) SATISFIES u.device = "pc" END
with @vsr1 's suggestion.
but how should I only query login_time that match my condition, here should be user_list.`usr:1`.login_time
I want to only SELECT login_time for match ANY v IN OBJECT_PAIRS(user_list) SATISFIES v.name = “user:1” AND v.val.device = “pc” END,
here the output should be {“login_name”:<user_list.usr:1.login_time>}
SELECT FIRST v.val.login_time FOR v IN OBJECT_PAIRS(user_list) WHEN v.name = "user:1" AND v.val.device = "pc" END AS login_time
from default WHERE ANY v IN OBJECT_PAIRS(user_list) SATISFIES v.name = "user:1" AND v.val.device = "pc" END;
OR
SELECT users[0].login_time FROM default
LET users = ARRAY {v.name, v.val.login_time, v.val.device} FOR v IN OBJECT_PAIRS(user_list) WHEN v.name = "user:1" AND v.val.device = "pc" END
WHERE ARRAY_LENGTH(users) > 0;