sql >> Database >  >> NoSQL >> MongoDB

Hoe object-ID's in Mongo db te overschrijven tijdens het maken van een app in Sails

Opgelet :Mongo-ID moet uniek mogelijk zijn om goed te kunnen schalen. De standaard ObjectId Het bestaat uit een tijdstempel, computer-ID, proces-ID en een willekeurig oplopende waarde. Als je hem alleen bij de laatste laat, is hij vatbaar voor botsingen.

Soms wilt u echter de oneindige ObjectID-waarde mooier maken (d.w.z. getoond worden in de URL na codering ). Overweeg dan om een ​​geschikte atomaire incrementstrategie te gebruiken .

Overschrijven het _id voorbeeld:

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

Een Auto-Incrementing Sequence maken :

  • Tellerverzameling gebruiken :Eigenlijk een gescheiden verzameling die het laatste nummer van de reeks bijhoudt. Persoonlijk vond ik het meer samenhangend om de findAndModify-functie op te slaan in de system.js-verzameling, hoewel het ontbreekt de mogelijkheden van versiebeheer.
  • Optimistische lus

Bewerken:

Ik heb een probleem gevonden waarin de eigenaar van Sails-mongo zei:

Hij noemt de eerste techniek die ik in dit antwoord heb toegevoegd:Gebruik tellersverzameling . In hetzelfde nummer, lewins toont een oplossing.




  1. Hoe documenten te verwijderen die zijn geretourneerd door een aggregatiequery in mongodb

  2. Mgo-aggregatie:hoe modeltypen opnieuw te gebruiken om gemengde resultaten op te vragen en te ontrafelen?

  3. MongoDB:vind waarde in array met meerdere criteria

  4. Spring-boot:mongoDB-datumvergelijking werkt niet