sql >> データベース >  >> NoSQL >> MongoDB

MongoDB Javaドライバー:並べ替えで区別

    MongoDBは、distinctを使用したサーバー側の並べ替えをサポートしていません 指図。コンソールで何が起こっているのかというと、distinct('myKey') callは配列を返し、JavaScriptのsortを呼び出しています。 配列のソートされたバージョンを返すその配列のメソッド。 sortに渡すパラメータ 無視されます。

    Javaで同等のことを行うには、次のようにします。

    List myKeys = myCollection.distinct("myKey");
    java.util.Collections.sort(myKeys);
    

    サーバー側の並べ替えを使用して一意のキーを取得するには、aggregateを使用できます 。シェルでこれを行う方法は次のとおりです。

    db.mycollection.aggregate([
        { $group: {_id: '$myKey' }},
        { $sort: {_id: 1}}
    ])
    

    ただし、これをテストしたところ、単純なクライアント側の並べ替えアプローチの方がはるかに優れていました。



    1. MongoDB db.collection.count()

    2. マングースで集約する前にpopulateを使用できますか?

    3. C#を使用して特定のドキュメントMongodbにフィールドが存在するかどうかを確認する方法は?

    4. Mongodb/pymongoの文字列の長さで並べ替える