2017-11-22 6 views
1

私はArangoDB 3.0で100k文書を収集しています。それらの各々は、一意でない "グループ"特性を有し、これは整数である。私は次のクエリで一意にそれらのすべてを取得したい:ArangoDb Return Distinctでソート正しい結果と間違った順序でスキップします

FOR entry IN Collection 
    FILTER entry.group!=null 
    SORT entry.group ASC 
    RETURN DISTINCT entry.group 

結果が間違った順序で、時にはいくつかのグループとをスキップ

[//Missing 1 here 
    2, 
    3, 
    5, 
    ... 
    204, 
    53,//Wrong order 
    205, 

答えて

2

マニュアルから:

注:ArangoDB 3.3より前になるまで、RETURN DISTINCTの結果の順序は未定義です。 ArangoDB 3.3以降、RETURN DISTINCTは適用された結果の順序を変更しません。

+0

ありがとうございます!バージョンを変更するもう一つの理由。私はDISTINCTの情報についてこの答えを受け入れましたが、ピークからの他の答えは、v <3 –

1

以前のバージョンでDISTINCT RETURNの制限を回避する必要があり、次のArangoDBのも、より効率的かもしれません:

FOR x IN (
    FOR entry IN Collection 
     FILTER entry.group 
     RETURN DISTINCT entry.group) 
    SORT x ASC 
    RETURN x 
+0

私には同じ結果が得られます。私はコード内でDiSTINCTを忘れてしまった。しかし、それは結果が間違っていたことがDISTICNTのためでした。 SORTのみを使用すると、結果は正しく表示されます。 –

関連する問題