2016-12-15 6 views
0

私は、キー/属性として整数/文字列から作成された、いくつかの値を持つオブジェクトで構成されるコレクションを持っています。ArangoDBのオブジェクト属性で並べ替え

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

、 あなたがキーでソートしたい場合は、何かのように行うことができます。

元のオブジェクト:

{ 
    "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)} 

Out:

[ 
    { 
    "results": { 
     "1": 231.034, 
     "2": 3267.123, 
     "3": 235.23 
    } 
    } 
] 
関連する問題