MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Dernier enregistrement par date pour chaque élément du groupe mongodb

Essayez avec l'extrait suivant

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

Dans la requête ci-dessus, groupez par ID d'appareil et date, les données et gateway_id seront les plus récents dans chaque ligne.