Configuré una solicitud de obtención de nodo para devolver el recuento de las claves en mi base de datos. Sin embargo, atm devuelve el recuento de una clave. Quisiera saber como agregar mas llaves para contar. Entonces, en lugar de solo contar Medianos, también me gustaría contar Pequeños y Grandes.
registerRoute.route("/countDocuments").get(function (req, res) { Sweatersizes.countDocuments({ sweatersize: "Medium" }, function (err, result) { if (err) { res.send(err); } else { res.json(result); } }); }); Thanks!Consulta
aggregate( [{"$group": {"_id": "$sweatersize", "count": {"$sum": 1}, "sweatersize": {"$first": "$sweatersize"}}}, {"$unset": ["_id"]}])Puede hacerlo con el marco de agregación y la tubería de group :
registerRoute.route("/countDocuments").get(function (req, res) { Sweatersizes.aggregate([ { "$group": { "_id": "$sweatersize", "total_count": { "$count": {} } } } ], function (err, result) { if (err) { res.send(err); } else { res.json(result); } }); });¡Gracias a los dos! Este es el código que finalmente respondió como yo quería:
registerRoute.route("/countDocuments").get(function (req, res) { Sweatersize.aggregate([ { $group: { count: { $sum: 1 }, sweatersize: { $first: "$sweatersize" }, }, }, ]) .then((result) => { res.json(result); }) .catch((error) => { console.log(error); }); });