MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB fornisce un modo per generare valori sequenziali?

Generalmente in MongoDB, non utilizzeresti un modello di incremento automatico in quanto non si adatta a database con un numero elevato di documenti. Tuttavia, è possibile farlo utilizzando una raccolta di contatori separata per tenere traccia dell'ultima sequenza numerica utilizzata:

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

Puoi quindi creare una funzione che ti restituirà il numero successivo nella sequenza:

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