gemeinsam haben Ich versuche, alle Dokumente zu finden, die teilen die max (num_sold). Ich kann nicht nur absteigend sortieren und ein Limit (1) machen, weil ich den Fall vermisse, in dem andere Dokumente auch das gleiche Maximum haben (num_sold). Angesichts diese über vereinfachte Datenmenge:Finden Sie alle Dokumente, die Max (Wert) im aggregierten Schritt
{"item":"Apple", "num_sold": 49}
{"item":"Orange", "num_sold": 55}
{"item":"Peach", "num_sold": 55}
{"item":"Grape", "num_sold": 20}
{"item":"Banana", "num_sold": 20}
I
{"item":"Orange", "num_sold": 55}
{"item":"Peach", "num_sold": 55}
Verwendung von SQL zurück erhalten mag, ist dies eine einfache Abfrage und dann zurück zum Haupt Dataset verbinden. Ich bin ein bisschen ratlos, wie man das in MongoDB macht.
Ich habe das Maximum gefunden, aber wie bekomme ich alle Dokumente, die das Maximum haben?
db.t.aggregate(
{$group:{
_id:null,
num_sold:{$max:"$num_sold"}
}
}
);
{ "_id" : null, "num_sold" : 55 }
Funktioniert gut für meine Anwendung, danke! – NumericOverflow