Один из многих документов, в моей коллекции, как показано ниже:Найти максимальную дату от нескольких вложенных документов
{ "_id" :123,
"a" :[
{ "_id" : 1,
"dt" : ISODate("2013-06-10T19:38:42Z")
},
{ "_id" : 2,
"dt" : ISODate("2013-02-10T19:38:42Z")
}
],
"b" :[
{ "_id" : 1,
"dt" : ISODate("2013-02-10T19:38:42Z")
},
{ "_id" : 2,
"dt" : ISODate("2013-23-10T19:38:42Z")
}
],
"c" :[
{ "_id" : 1,
"dt" : ISODate("2013-03-10T19:38:42Z")
},
{ "_id" : 2,
"dt" : ISODate("2013-13-10T19:38:42Z")
}
]
}
Я хочу, чтобы найти максимальную дату документа в целом (а, б, в). Решение, которое я имею прямо сейчас, я прокручиваю весь корень _id
, затем делаю $match
в структуре агрегации для каждого a
, b
, c
для каждого корневого документа. это звучит очень неэффективно, какие-то лучшие идеи?
Вы имеете в виду максимум всех дат в a, b и c? – innoSPG
Если ключи, подобные a, b, c, не известны заранее, вам нужно попробовать уменьшить карту. Вы пробовали это? – WiredPrairie
@innoSPG да .......... – PUG