L'un des nombreux documents dans ma collection est comme ci-dessous:date maximale à partir de plusieurs documents intégrés
{ "_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")
}
]
}
Je veux trouver la date maximale pour le document entier (a, b, c). La solution que j'ai en ce moment, je boucle à travers tous les racine _id
puis faire $match
dans un cadre d'agrégation pour chaque a
, b
, c
pour chaque document racine. cela semble très inefficace, de meilleures idées?
vous voulez dire le maximum de toutes les dates en a, b et c? – innoSPG
Si les clés comme a, b, c ne sont pas connues à l'avance, vous devrez essayer une réduction de la carte. Avez-vous essayé cela? – WiredPrairie
@innoSPG oui .......... – PUG