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

MongoDB-コレクション内のグループごとに最大属性を持つドキュメントを取得します

    MongoDBアグリゲーションは、 $maxを提供します 演算子ですが、あなたの場合は「全体」のレコードがそのまま必要です。したがって、ここで行う適切なことは $sortです。 次に、 $firstを使用します $group内の演算子 ステートメント:

    db.collection.aggregate([
        { "$sort": { "session": 1, "age": -1 } },
        { "$group": {
            "_id": "$session",
            "age": { "$first": "$age" },
            "firstName": { "$first" "$firstName" },
            "lastName": { "$first": "$lastName" }
        }}
    ])
    

    したがって、「並べ替え」によって順序が正しくなり、「グループ化」によって、これらのフィールドが存在する「グループ化」キー内で最初に出現するものが選択されます。

    主に$first $sortが 逆の順序で行われます。 $lastを使用することもできます 昇順の場合も同様です。



    1. Mongooseドキュメント内で自由形式のJSONデータを許可するにはどうすればよいですか?

    2. MongoDB:集約フレームワーク:フィールド間の$ match

    3. Redis-期限切れのインデックスは削除されません

    4. データを失うことなく、mongodbをキャップしたコレクションのサイズを変更するにはどうすればよいですか?