sql >> Base de Datos >  >> NoSQL >> MongoDB

Último registro por fecha para cada elemento del grupo mongodb

Prueba con el siguiente fragmento

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

En el grupo de consulta anterior por ID de dispositivo y fecha, datos y gateway_id serán los últimos en cada fila.