Automatisches Inkrement in MongoDB

MD Aminul Islam 20 Juni 2023
Automatisches Inkrement in MongoDB

Die meisten SQL-Abfragesprachen enthalten ein einzelnes Schlüsselwort, um ein Feld automatisch zu inkrementieren, aber in MongoDB ist es etwas komplex. In MongoDB ist kein Schlüsselwort für die automatische Erhöhung verfügbar.

Dieser Artikel zeigt uns, wie wir Daten in eine MongoDB-Sammlung mit der Auto-Increment-Funktion einfügen können, und wir werden ein für das Thema relevantes Beispiel sehen, um es einfacher zu machen.

Wenden Sie die Auto-Increment-Funktionalität in MongoDB an

Einige Felder, die wir erhöhen müssen, nachdem ein neues Dokument in eine Sammlung eingefügt wurde, umfassen die Seriennummer, die ID usw. Wir können dies jedoch automatisch tun, wenn wir unserer Abfrage einige einfache Zeichen hinzufügen.

Das Schlüsselwort, das wir zu diesem Zweck verwenden, ist $inc, wodurch der spezifische Datenwert erhöht wird. Mal sehen, wie wir es in unsere Abfrage integrieren können.

In unserem Beispiel unten zeigen wir, wie wir die automatische Erhöhung in MongoDB verwenden. Zu diesem Zweck müssen wir zunächst eine neue Sammlung namens count erstellen, die die Sequenznummer verfolgt.

Lassen Sie uns die Sammlung initialisieren, indem Sie ein Dokument wie das folgende einfügen.

db.count.insert(
   {
      _id: "incId",
      seq: 0
   }
)

Dadurch wird die Inkrementierungssequenz auf 0 initialisiert. Jetzt erstellen wir eine Funktion namens autoIncrement(), die den Wert sowohl der count-Sammlung als auch der angegebenen Sammlung erhöht.

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

   return ret.seq;
}

Die Funktion gibt den inkrementierten Sequenzwert zurück, den wir für unsere insert-Funktion verwenden können, indem wir die Funktion wie die folgende aufrufen.

db.mycollection.insert({ sl: autoIncrement("incId"), Name: "Retro"});
db.mycollection.insert({ sl: autoIncrement("incId"), Name: "Max"});

Nachdem Sie die obigen Befehle ausgeführt haben, müssen Sie einen Feldwert nicht manuell erhöhen. Nach dem Einfügen des Dokuments erhalten Sie die folgende Ausgabe in Ihrer Konsole:

{ _id: ObjectId("6388f500054350812fa6b073"),
  sl: 1,
  Name: 'Retro' }
{ _id: ObjectId("6388f94e054350812fa6b075"),
  sl: 2,
  Name: 'Max'
}

Denken Sie daran, dass Sie eine Zählsammlung nicht zum Erhöhen von Werten in mehreren Sammlungen verwenden können. Die Sammlung count ist wie eine Variable, die Inkrementwerte enthält und aktualisiert, daher müssen Sie eine Zählsammlung erstellen, um Werte in mehreren Sammlungen zu inkrementieren.

Bitte beachten Sie, dass die in diesem Artikel gezeigten Befehle für die MongoDB-Datenbank gelten und der Befehl auf der MongoDB-Konsole ausgeführt werden muss.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Verwandter Artikel - MongoDB Document