MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Bietet MongoDB eine Möglichkeit, sequentielle Werte zu generieren?

Im Allgemeinen würden Sie in MongoDB kein Auto-Increment-Muster verwenden, da es für Datenbanken mit einer großen Anzahl von Dokumenten nicht skaliert. Es ist jedoch möglich, dies zu tun, indem eine separate Sammlung von Zählern verwendet wird, um die letzte verwendete Zahlenfolge zu verfolgen:

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

Sie können dann eine Funktion erstellen, die Ihnen die nächste Zahl in der Sequenz zurückgibt:

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