Contar parece como una de esas cosas que deberían ser baratas, pero a menudo no lo son. Debido a que mongo no mantiene un recuento de la cantidad de documentos que coinciden con ciertos criterios en su índice de árbol b, debe escanear el índice contando los documentos a medida que avanza. Eso significa que contar 100 veces los documentos tomará 100 veces el tiempo, y esto es más o menos lo que vemos aquí -- 0.018 * 100 = 1.8s
.
Para acelerar esto, tiene algunas opciones:
- El recuento activo es aproximadamente
estimatedDocumentCount() - db.users.countDocuments({status: 'inactive'})
. ¿Sería lo suficientemente preciso para su caso de uso? - Alternativamente, puede mantener un
counts
documento en una colección separada que mantienes sincronizado con la cantidad de documentos activos/inactivos que tienes.