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

O MongoDB fornece uma maneira de gerar valores sequenciais?


Geralmente no MongoDB, você não usaria um padrão de incremento automático, pois ele não é dimensionado para bancos de dados com um grande número de documentos. No entanto, é possível fazer isso usando uma coleção de contadores separada para rastrear a última sequência numérica usada:
db.counters.insert(
  {
     _id: "userid",
      seq: 0
   }
  )

Você pode então criar uma função que retornará o próximo número na sequência:
function getNextSequence(name) {
  var ret = db.counters.findAndModify(
         {
           query: { _id: name },
           update: { $inc: { seq: 1 } },
           new: true
         }
  );