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

Mongodbクエリ:各アイテムの日付別の最新レコード

    次のスニペットで試してください

    db.collection.aggregate([
                {$group: {
                        "_id": "$device_id",
                        "gateway_id": {"$last":"$gateway_id"},
                         data: {$last: '$data'},
                         date: {$last: '$date_time'},
                    }},
                {$project: {
                         "device_id": "$_id",
                          "gateway_id": "$gateway_id",
                          "data": "$data",
                          "date_time": "$date"
                      }},
                {$sort: {
                        'date': -1
                    }}
            ])
    

    上記のクエリグループでは、デバイスIDと日付、データ、gateway_idが各行で最新になります。

    出力は-

    {
        "result" : [ 
            {
                "_id" : 29,
                "gateway_id" : 1,
                "data" : [ 
                    {
                        "r" : 203,
                        "v" : 3002
                    }, 
                    {
                        "r" : 221,
                        "v" : 3006
                    }
                ],
                "device_id" : 29,
                "date_time" : "a"
            }, 
            {
                "_id" : 28,
                "gateway_id" : 1,
                "data" : [ 
                    {
                        "r" : 203,
                        "v" : 3002
                    }, 
                    {
                        "r" : 221,
                        "v" : 3006
                    }
                ],
                "device_id" : 28,
                "date_time" : "b"
            }, 
            {
                "_id" : 27,
                "gateway_id" : 1,
                "data" : [ 
                    {
                        "r" : 203,
                        "v" : 3642
                    }, 
                    {
                        "r" : 221,
                        "v" : 3666
                    }
                ],
                "device_id" : 27,
                "date_time" : "a"
            }
        ],
        "ok" : 1
    }
    

    ありがとう



    1. MongoDBからフェッチされた文字列の配列を反復処理します

    2. MongoDBの耐久性と書き込みの安全性を理解する

    3. 同じサーバー上のMongoDBシャードと構成サーバー?

    4. 初心者向けのHadoopMapReduceチュートリアル