MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да презапишете идентификаторите на обекти в Mongo db, докато създавате приложение в Sails

Внимание :Mongo ID трябва да бъде уникален, доколкото е възможно за да се мащабира добре. Стандартният ObjectId се състои от клеймо за време, идентификатор на машина, идентификатор на процес и произволна нарастваща стойност. Оставянето му само с последното би го направило податливо на сблъсък.

Понякога обаче много искате да украсите безкрайната стойност на ObjectID (т.е. да бъде показана в URL адреса след кодиране ). След това трябва да обмислите използването на подходяща стратегия за атомно нарастване .

Отмяна примерът за _id:

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

Създаване на автоматично увеличаваща се последователност :

  • Използване на колекция от броячи :По същество отделена колекция, която следи последния номер от последователността. Лично аз открих, че е по-сплотено да съхранявам функцията findAndModify в колекцията system.js, въпреки че тя липси възможности за контрол на версиите.
  • Оптимистична линия

Редактиране:

Намерих проблем в което собственикът на sails-mongo каза:

Той споменава първата техника, която добавих в този отговор:Използване на колекция от броячи . В същия брой, lewins показва заобиколно решение.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. не може да направи повикване за почивка

  2. Как да конвертирам низ в ObjectId в роден драйвер на nodejs mongodb?

  3. Обект на MongoDB, сериализиран като JSON

  4. Как мога да актуализирам множество документи в mongoose?

  5. Как да направите група mongo от страната на сървъра на Meteor