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.