Опитайте със следния фрагмент
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
}}
]);
В групата заявки по-горе по идентификатор на устройство и дата, данни и gateway_id ще бъдат най-новите във всеки ред.