我有一个由对象组成的Collection,由一个整数/字符串作为键/属性和一些值。
像这样:
results
-> '1' : 231.034
-> '2' : 3267.123
-> '3' : 235.23
当我写:
"""FOR u IN collection
RETURN u.results"""
我按照这样的随机顺序得到它们,
[{'3' : 235.23, '1' : 231.034, '2' : 3267.123}]
如何根据属性对它们进行排序?
我试过了:
"""FOR u IN collection
SORT ATTRIBUTES(u.results) ASC
RETURN u.results"""
除了我能提出的所有其他组合。
答案 0 :(得分:0)
键值对象无法真正排序, 如果您想按键排序,可以执行以下操作:
原始对象:
{
"results": {
"3": 235.23,
"2": 3267.123,
"1": 231.034
}
}
查询:
for u in @@collection
let keys = ATTRIBUTES(u.results)
//convert keys to sorted array
let sortedKeys = (for key in keys
sort key asc
return key
)
//convert to key value tuples
let sortedObject = (
for key in sortedKeys
return {[key] : u.results[key]}
)
//merge to single document, can also do with zip
return {results : MERGE(sortedObject)}
输出:
[
{
"results": {
"1": 231.034,
"2": 3267.123,
"3": 235.23
}
}
]