Achtung :Die Mongo-ID sollte so eindeutig wie möglich um gut zu skalieren. Die standardmäßige ObjectId besteht aus einem Zeitstempel, einer Maschinen-ID, einer Prozess-ID und einem zufälligen inkrementierenden Wert. Wenn Sie es nur mit letzterem belassen, wird es kollisionsanfällig.
Manchmal möchten Sie jedoch unbedingt den unendlichen ObjectID-Wert verschönern (d.h. in der URL nach encoding anzeigen). ). Dann sollten Sie eine geeignete atomare Inkrementstrategie in Betracht ziehen .
Überschreiben das _id-Beispiel:
db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})
Erstellen einer Auto-Incrementing-Sequenz :
- Zählersammlung verwenden :Im Grunde eine getrennte Sammlung, die die letzte Nummer der Sequenz verfolgt. Ich persönlich fand es kohärenter, die findAndModify-Funktion in der system.js-Sammlung zu speichern, obwohl es fehlt die Möglichkeiten der Versionskontrolle.
- Optimistische Schleife
Bearbeiten:
Ich habe ein Problem gefunden in dem der Besitzer von Segel-Mongo sagte:
Er erwähnt die erste Technik, die ich in dieser Antwort hinzugefügt habe:Use Counters Collection . In derselben Ausgabe lewins zeigt eine Problemumgehung.