Auf einem Standard-SQL-DBMS würde dies mit der folgenden Abfrage erfolgen:
SELECT type, count(*) as ct FROM table GROUP BY type ORDER BY ct;
Auf Mongodb würde dies mit der Gruppenfunktion erfolgen, obwohl es etwas komplizierter ist:
db.collection.group(
{key: { "type":true},
reduce: function(obj,prev) { prev.count += 1; },
initial: { count: 0 }
});
Hier bitte ich die Datenbank, Werte für den Schlüssel "type" (daher "true") zurückzugeben, und für jeden Wert wird die angegebene Reduce-Funktion verwendet, um die gefundenen Datensätze zu aggregieren. Hier aktualisiere ich nur eine Zählung, wie oft jeder Datensatz vorkommt. Wenn Sie diese Abfrage ausführen, erhalten Sie etwa Folgendes:
[
{
"type" : "report",
"count" : 5
},
{
"type" : "memo",
"count" : 15
}
{
"type" : "research",
"count" : 3
}
]
Sie werden feststellen, dass dies nicht bestellt ist; Sogar die Mongodb-Dokumentation sagt, dass der einfachste Weg, es zu bestellen, darin besteht, es clientseitig zu tun.
Relevante Dokumentation ist hier .