Hãy thử với đoạn mã sau
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
}}
]);
Trong nhóm truy vấn ở trên theo id thiết bị và ngày, dữ liệu và gateway_id sẽ là hàng mới nhất trong mỗi hàng.