для данного параметра, я запрашиваю самую последнюю запись из коллекции следующим образом:
query = {'id': parameter}
doc = collection.find_one(query, sort=[('updated_at',-1)])
Как я могу получить самую последнюю запись для всех идентификаторов, присутствующих в коллекции, в одном запросе? На данный момент я перебираю параметр и объединяю вывод
INPUT : Коллекция имеет несколько записей / документов, например:
{
id: "ABC",
weight: 35,
updated_at: "2013-10-01T1:32:12.112Z"
},
{
id: "ABC",
weight: 45,
updated_at: "2017-10-01T1:32:12.112Z"
},
{
id: "BAD",
weight: 38,
updated_at: "2013-10-11T1:32:12.112Z"
}
Output :
{
{
id: "ABC",
weight: 45,
updated_at: "2017-10-01T1:32:12.112Z"
},
{
id: "BAD",
weight: 38,
updated_at: "2013-10-11T1:32:12.112Z"
}
}
Решение : Если я построю трубопровод, как показано ниже. каков будет вес при использовании $ first
[
{ "$sort": { "id": 1, "updated_at": -1 } },
{ "$group": {
"_id": "$id",
"updated_at": { "$first": "$updated_at" },
"weight": { "$first": "$weight" }
}
]