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

MongoDB fournit-il un moyen de générer des valeurs séquentielles ?

Généralement, dans MongoDB, vous n'utiliserez pas un modèle d'auto-incrémentation car il ne s'adapte pas aux bases de données contenant un grand nombre de documents. Il est toutefois possible de le faire en utilisant une collection de compteurs distincte pour suivre la dernière séquence de nombres utilisée :

db.counters.insert(
  {
     _id: "userid",
      seq: 0
   }
  )

Vous pouvez ensuite créer une fonction qui vous renverra le numéro suivant dans la séquence :

function getNextSequence(name) {
  var ret = db.counters.findAndModify(
         {
           query: { _id: name },
           update: { $inc: { seq: 1 } },
           new: true
         }
  );