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

¿MongoDB proporciona una forma de generar valores secuenciales?

Generalmente, en MongoDB, no usaría un patrón de incremento automático, ya que no escala para bases de datos con una gran cantidad de documentos. Sin embargo, es posible hacer esto usando una colección de contadores separada para rastrear la última secuencia de números utilizada:

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

Luego puede crear una función que le devolverá el siguiente número en la secuencia:

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