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

MongoDB $ orderBy

    MongoDBでは、$orderBy クエリ修飾子は、クエリの結果を昇順または降順で並べ替えます。

    $orderBy 並べ替えるフィールドと並べ替え順序を指定するドキュメントを受け入れます。並べ替え順序は、1のいずれかになります。 昇順または-1 降順。

    $orderBy mongoでは非推奨になりました v3.2以降のシェル。 cursor.sort()を使用します 代わりにメソッド。

    サンプルデータ

    petsというコレクションがあるとします。 次のドキュメントを使用:

    { "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
    { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
    { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
    { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
    { "_id" : 5, "name" : "Bruce", "type" : "Kangaroo", "weight" : 100 }
    { "_id" : 6, "name" : "Hop", "type" : "Kangaroo", "weight" : 130 }
    { "_id" : 7, "name" : "Punch", "type" : "Kangaroo", "weight" : 200 }
    { "_id" : 8, "name" : "Snap", "type" : "Cat", "weight" : 12 }
    { "_id" : 9, "name" : "Ruff", "type" : "Dog", "weight" : 30 }

    昇順で並べ替え

    昇順で並べ替えるには、1を使用します 並べ替え順序について。

    以下は、$orderByを使用するクエリの例です。 そのコレクションをweightで並べ替えるクエリ修飾子 昇順のフィールド。

    db.pets.find( { $query: {}, $orderBy: { weight: 1 } } )

    結果:

    { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
    { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
    { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
    { "_id" : 8, "name" : "Snap", "type" : "Cat", "weight" : 12 }
    { "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
    { "_id" : 9, "name" : "Ruff", "type" : "Dog", "weight" : 30 }
    { "_id" : 5, "name" : "Bruce", "type" : "Kangaroo", "weight" : 100 }
    { "_id" : 6, "name" : "Hop", "type" : "Kangaroo", "weight" : 130 }
    { "_id" : 7, "name" : "Punch", "type" : "Kangaroo", "weight" : 200 }

    降順で並べ替え

    降順で並べ替えるには、-1を使用します 並べ替え順序について。

    db.pets.find( { $query: {}, $orderBy: { weight: -1 } } )

    結果:

    { "_id" : 7, "name" : "Punch", "type" : "Kangaroo", "weight" : 200 }
    { "_id" : 6, "name" : "Hop", "type" : "Kangaroo", "weight" : 130 }
    { "_id" : 5, "name" : "Bruce", "type" : "Kangaroo", "weight" : 100 }
    { "_id" : 9, "name" : "Ruff", "type" : "Dog", "weight" : 30 }
    { "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
    { "_id" : 8, "name" : "Snap", "type" : "Cat", "weight" : 12 }
    { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
    { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
    { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }

    代替フォーム

    $orderBy クエリ修飾子は、次の形式でも使用できます:

    db.pets.find()._addSpecial( "$orderby", { weight : 1 } )

    詳細情報

    前述のように、$orderBy クエリ修飾子はmongoで非推奨になりました v3.2以降のシェル。 cursor.sort()を使用します 代わりにメソッド。

    詳細については、MongoDBのドキュメントを参照してください。


    1. delayd_jobs vs resque vsbeanstalkd?

    2. 組み込みのMongoDBを使用したSpringBoot統合テスト

    3. 本番環境でMongoDBを使い始めるときに知っておくべきこと-10のヒント

    4. ビッグデータHadoopのトップ10の機能