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

So überschreiben Sie Objekt-IDs in Mongo-Datenbank, während Sie eine App in Sails erstellen

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.