Uwaga :Identyfikator Mongo powinien być unikatowy, jak to możliwe aby dobrze skalować. Domyślny ObjectId składa się ze znacznika czasu, identyfikatora maszyny, identyfikatora procesu i losowej wartości przyrostowej. Pozostawienie go tylko z tym drugim naraziłoby go na kolizje.
Czasami jednak bardzo chcesz upiększyć niekończącą się wartość ObjectID (tj. aby była wyświetlana w adresie URL po kodowaniu ). Następnie powinieneś rozważyć użycie odpowiedniej strategii przyrostu atomowego .
Zastępowanie przykład _id:
db.testSOF.insert({_id:"myUniqueValue", a:1, b:1})
Tworzenie automatycznej sekwencji przyrostowej :
- Użyj kolekcji liczników :Zasadniczo oddzielna kolekcja, która śledzi ostatni numer sekwencji. Osobiście uważam, że bardziej spójne jest przechowywanie funkcji findAndModify w kolekcji system.js, chociaż brakuje możliwości kontroli wersji.
- Pętla optymistyczna
Edytuj:
Znalazłem problem w którym właściciel sails-mongo powiedział:
Wspomina o pierwszej technice, którą dodałem w tej odpowiedzi:Użyj kolekcji liczników . W tym samym numerze lewins pokazuje obejście.