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

マングースで提供された条件配列内のアイテムの順序でクエリ結果を並べ替える

    次のデータを検討する:

    db.col.save({ a: "111"})
    db.col.save({ a: "112"})
    db.col.save({ a: "113"})
    db.col.save({ a: "114"})
    

    AggregationFrameworkの $match を使用できます 指定された配列に存在しないすべてのアイテムと $ addFields $indexOfArray を使用 indexを取得するには 財産。次に、 $sort を実行できます。 そのプロパティで、 $project を使用します 一時フィールドを削除します。試してみてください:

    db.col.aggregate([
        {
            $match: { a: { $in: ["112", "111", "113"] } }
        },
        {
            $addFields: {
                index: { $indexOfArray: [ ["112", "111", "113"], "$a" ] }
            }
        },
        {
            $sort: { index: 1 }
        },
        {
            $project: { index: 0, _id: 0 }
        }
    ])
    

    出力:

    { "a" : "112" }
    { "a" : "111" }
    { "a" : "113" }
    



    1. MongoDb合計クエリ

    2. mongodbでのOR+Sortクエリの複合インデックス

    3. 春のMongodbタイムスタンプタイムゾーン誤解を招く

    4. Python-EveでのMongoDB認証構成の設定