Tengo algunos documentos que se asemejan a la siguiente estructura:
{ "name": "item_1", "category": ["a", "b"] }, { "name": "item_2", "category": ["c"] }, { "name": "item_3", "category": ["a", "c"] }, { "name": "item_4", "category": ["a"] }, { "name": "item_5", "category": ["a"] }Estoy tratando de obtener una lista ordenada de los valores más utilizados para el campo de categoría en todos los documentos dentro de la colección.
Entonces, en este ejemplo, el valor de retorno que espero debería ser algo como esto:
[ { "category": "a", "count": 4 }, { "category": "c", "count": 2 }, { "category": "b", "count": 1 } ]¿Hay alguna manera de hacer tal consulta en mongoose?
Demostración: https://mongoplayground.net/p/sBpwwvowXLH
Use la consulta de agregación para $desenrollar su categoría en documentos separados $ agruparlos por categoría y obtener el conteo
db.collection.aggregate({ "$unwind": "$category" }, { "$group": { "_id": "$category", count: { $sum: 1 } } })