mongodb wie man maximalen Wert aus Sammlungen erhält
Ich habe eine mongodb collection wie:
db.kids.find()
//results
[
{name:'tom', age:10},
{name:'alice', age:12},
....
]
Ich brauche eine Abfrage zum abrufen von MAX 'Alter' aus dieser Kollektion
wie in SQL: SELECT MAX(age) FROM kids WHERE 1
InformationsquelleAutor der Frage Hossain Khademian | 2015-08-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als einer der Kommentare:
es ist ganz brauchbar, aber ich bin mir nicht sicher über die Leistung
InformationsquelleAutor der Antwort Hossain Khademian
Die Leistung der vorgeschlagenen Antwort ist in Ordnung. Nach der MongoDB-Dokumentation:
Also im Fall von
bekommen wir nur das oberste element OHNE Sortierung der Sammlung, weil von der erwähnten Optimierung.
InformationsquelleAutor der Antwort popolvar
was über die Verwendung von Aggregat-Rahmen:
InformationsquelleAutor der Antwort dier
Einfache Erklärung,
wenn Sie mongo query-Response etwas wie unten -
und Sie wollen nur höchste Wert von Array-> "Date"
***, Dann müssen Sie hinzufügen
etwas wie unten-
Und Letzten Query-Response unter
InformationsquelleAutor der Antwort ngCourse
Leute Sie sehen können, was der Optimierer macht, durch ausführen eines plans. Das generische format der Blick in einen plan von der MongoDB Dokumentation . d.h. Cursor.plan(). Wenn Sie wirklich wollen, um tiefer zu Graben, die Sie tun können, einen cursor.plan(true) für weitere details.
Gesagt haben, dass, wenn Sie einen index deiner db.col.finden().sort({"Feld":-1}).limit(1) wird das Lesen von einem index-Eintrag - auch wenn der index standardmäßig aufsteigend und Sie wollte den max-Eintrag und einen Wert aus der Auflistung.
In anderen Worten, die Vorschläge von @yogesh korrekt ist.
Dank - Sumit
InformationsquelleAutor der Antwort Sumit S