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

Sådan overskrives objekt-id'er i Mongo db, mens du opretter en app i Sails

Opmærksomhed :Mongo-id skal være unik som muligt for at skalere godt. Standard ObjectId består af et tidsstempel, maskin-id, proces-id og en tilfældig stigende værdi. Hvis den kun efterlades med sidstnævnte, ville den blive udsat for kollisioner.

Men nogle gange vil du meget gerne forskønne den uendelige ObjectID-værdi (dvs. at blive vist i URL'en efter kodning ). Derefter bør du overveje at bruge en passende atomic increment-strategi .

Tilsidesætte _id-eksemplet:

db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})

Lav en Auto-incrementing-sekvens :

  • Brug tællersamling :Grundlæggende en adskilt samling, som holder styr på det sidste nummer i sekvensen. Personligt har jeg fundet det mere sammenhængende at gemme findAndModify-funktionen i system.js-samlingen, selvom den mangler versionskontrols muligheder.
  • Optimistisk sløjfe

Rediger:

Jeg har fundet et problem hvor ejeren af ​​sails-mongo sagde:

Han nævner den første teknik, jeg tilføjede i dette svar:Use Counters Collection . I samme nummer, lewins viser en løsning.




  1. Forbinder du direkte til Redis med (klientsiden) javascript?

  2. hvordan man gemmer et billede i redis ved hjælp af python / PIL

  3. Sådan implementerer du ClusterControl på AWS for at administrere din clouddatabase

  4. Meteor offentliggør/abonnerer på strategier for unikke samlinger på klientsiden