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.