Estoy jugando con MongoDB tratando de descubrir cómo hacer un simple
SELECT province, COUNT(*) FROM contest GROUP BY province
Pero parece que no puedo entenderlo usando la función de agregado. Puedo hacerlo usando una sintaxis grupal realmente extraña
db.user.group({
"key": {
"province": true
},
"initial": {
"count": 0
},
"reduce": function(obj, prev) {
if (true != null) if (true instanceof Array) prev.count += true.length;
else prev.count++;
}
});
¿Pero hay una manera más fácil / rápida de usar la función de agregado?

"errmsg" : "exception: A pipeline stage specification object must contain exactly one field.",?{ $sort: { count: -1 } }Necesito una operación adicional basada en el resultado de la función agregada. Finalmente encontré alguna solución para la función agregada y la operación basada en el resultado en MongoDB. Tengo una colección
Requestcon camporequest, source, status, requestDate.Grupo de campo único por y cuenta:
Múltiples campos Agrupar por y contar:
Múltiples campos Agrupar por y contar con Ordenar usando campo:
Múltiples campos Agrupar por y contar con Ordenar usando la cuenta:
fuente
Si necesita varias columnas para agrupar, siga este modelo. Aquí estoy realizando un conteo por
statusytype:fuente
Además, si necesita restringir la agrupación, puede usar:
fuente
A partir de MongoDB 3.4, puede usar la
$sortByCountagregación.https://docs.mongodb.com/manual/reference/operator/aggregation/sortByCount/
Por ejemplo:
fuente
$sortByCountrealidad es un "pseudo operador" como varios operadores de etapa de agregación más introducidos desde MongoDB 3.4. Todo lo que realmente hacen es expandirse a sus respectivas etapas de agregación. En este caso, una$groupcon$sum: 1como se muestra en las respuestas existentes y un adicional de$sortfase. No ofrecen otra ventaja que "escribir menos código" , que puede o no ser más descriptivo (si te gusta ese tipo de cosas). En mi humilde opinión, distintas$groupy$sortetapas en el código son mucho más descriptivas y de hecho más flexibles.Este tipo de consulta me funcionó:
Ver http://docs.mongodb.org/manual/tutorial/aggregation-with-user-preference-data/
fuente
Comando de shell Mongo que funcionó para mí:
fuente