MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Ultimo record per data per ciascun gruppo di elementi mongodb

Prova con il seguente snippet

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
    }}
]);

Nella query precedente raggruppa per ID dispositivo e data, data e gateway_id saranno gli ultimi in ogni riga.