sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo se cuenta la cantidad de documentos en una colección de MongoDB dentro de Node?

Para obtener la cantidad de documentos en una colección, use db.collection.find({}).count() .

Sin embargo, lo que estás tratando de hacer no funcionará. Cuando tiene muchos accesos paralelos a la base de datos, es posible que varios subprocesos hagan esto al mismo tiempo, reciban el mismo recuento y, por lo tanto, inserten un documento con la misma identificación. Según el teorema CAP , una base de datos distribuida como MongoDB no puede proporcionar este tipo de consistencia.

Lo que debe hacer en su lugar es confiar en MongoDB ObjectId 's como identificadores únicos para documentos. MongoDB los genera automáticamente para cada documento cuando no proporciona un valor propio para _id . Los ObjectId son globalmente únicos (lo suficientemente únicos para cualquier propósito práctico), por lo que no tendrá colisiones. También comienzan con una marca de tiempo, por lo que cuando realiza un pedido por _id obtienes un orden cronológico aproximado (como se indicó anteriormente, un orden estricto el orden cronológico es imposible de proporcionar mediante un sistema distribuido).

Como regla general, siempre que use AUTO_INCREMENT en SQL, probablemente usaría ObjectId en MongodDB.