我正在尝试获取对象scan
的第一个元素。就我而言,第一个元素的key
发生了变化。所以我不能用key
来调用它。这是我正在使用的AQL查询,它无效。
`FOR d in collection RETURN DISTINCT Object.keys(d.out.scan)[0]`
对象结构:
{
"out": {
"scan":{
"someKeyThatChanges":"someValue"
}
}
}
有没有办法获取key
的第一个scan
?
谢谢
答案 0 :(得分:2)
此问题的相关AQL函数记录在 https://docs.arangodb.com/3.3/AQL/Functions/Document.html
简而言之,如果对象只有一个用户定义的键,那么你将会这样做 能够直接使用VALUES(_,true)。
否则,您可以使用ATTRIBUTES()来获取对象的数组 属性。您可能希望对其进行过滤以避免名称以" _"开头的键。一旦您选择了密钥,请记住:
也可以使用[]访问器
访问属性...方括号允许表达式:
...你[attr1] [0] [attr2] [CONCAT("冷杉"," st")]
LET x = {
"out": {
"scan":{
"someKeyThatChanges":"someValue"
}
}
}
LET y = x.out.scan
LET z = y[ ATTRIBUTES(y)[0] ]
RETURN z
答案 1 :(得分:1)
要仅获取out.scan
的第一个键的名称,以下内容将起作用:
FOR d IN collection
RETURN ATTRIBUTES(d.out.scan)[0]
要返回该键的映射值,请参阅给出的其他答案。