MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment comptez-vous la quantité de documents dans une collection MongoDB dans Node ?

Pour obtenir le nombre de documents dans une collection, utilisez db.collection.find({}).count() .

Cependant, ce que vous essayez de faire ne fonctionnera pas. Lorsque vous avez beaucoup d'accès parallèles à la base de données, il est alors possible que plusieurs threads le fassent en même temps, reçoivent le même nombre et insèrent ainsi un document avec le même identifiant. Selon le théorème CAP , une base de données distribuée comme MongoDB ne peut pas fournir ce type de cohérence.

Ce que vous devriez faire à la place est de vous fier à MongoDB ObjectId comme identifiants uniques pour les documents. MongoDB les génère automatiquement pour chaque document lorsque vous ne fournissez pas de valeur propre pour _id . Les ObjectId sont globalement uniques (suffisamment uniques pour toute fin pratique), vous n'aurez donc aucune collision. Ils commencent également par un horodatage, donc lorsque vous commandez par _id vous obtenez un ordre à peu près chronologique (comme indiqué précédemment, un ordre strict l'ordre chronologique est impossible à fournir par un système distribué).

En règle générale, chaque fois que vous utiliseriez AUTO_INCREMENT en SQL, vous utiliserez probablement des ObjectId dans MongodDB.