MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como você conta a quantidade de documentos em uma coleção do MongoDB no Node?


Para obter o número de documentos em uma coleção, use db.collection.find({}).count() .

No entanto, o que você está tentando fazer não funcionará. Quando você tem muitos acessos paralelos ao banco de dados, é possível que vários threads façam isso ao mesmo tempo, recebam a mesma contagem e, assim, insiram um documento com o mesmo id. De acordo com o teorema CAP , um banco de dados distribuído como o MongoDB não pode fornecer esse tipo de consistência.

O que você deve fazer é confiar no MongoDB ObjectId 's como identificadores exclusivos para documentos. O MongoDB os gera automaticamente para cada documento quando você não fornece um valor próprio para _id . ObjectIds são globalmente únicos (exclusivos o suficiente para qualquer propósito prático), então você não terá colisões. Eles também começam com um carimbo de data/hora, portanto, quando você faz o pedido por _id você obtém uma ordem aproximadamente cronológica (como dito anteriormente, uma ordem estrita ordem cronológica é impossível de fornecer por um sistema distribuído).

Como regra geral, sempre que você usar AUTO_INCREMENT em SQL, você provavelmente usaria ObjectIds no MongodDB.