Внимание :Mongo ID трябва да бъде уникален, доколкото е възможно за да се мащабира добре. Стандартният ObjectId се състои от клеймо за време, идентификатор на машина, идентификатор на процес и произволна нарастваща стойност. Оставянето му само с последното би го направило податливо на сблъсък.
Понякога обаче много искате да украсите безкрайната стойност на ObjectID (т.е. да бъде показана в URL адреса след кодиране ). След това трябва да обмислите използването на подходяща стратегия за атомно нарастване .
Отмяна примерът за _id:
db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})
Създаване на автоматично увеличаваща се последователност :
- Използване на колекция от броячи :По същество отделена колекция, която следи последния номер от последователността. Лично аз открих, че е по-сплотено да съхранявам функцията findAndModify в колекцията system.js, въпреки че тя липси възможности за контрол на версиите.
- Оптимистична линия
Редактиране:
Намерих проблем в което собственикът на sails-mongo каза:
Той споменава първата техника, която добавих в този отговор:Използване на колекция от броячи . В същия брой, lewins показва заобиколно решение.