MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak nadpisać identyfikator obiektu w Mongo db podczas tworzenia aplikacji w Sails?

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.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Konflikt ReplicaSetId podczas dodawania węzła MongoDB

  2. Jak wydrukować więcej niż 20 pozycji (dokumentów) w powłoce MongoDB?

  3. MongoDB bulkWrite()

  4. jak zainstalować sterownik mongodb php na Windows 8 i serwer Wamp?

  5. Jak opublikować dane MongoDB w zagnieżdżonej tablicy za pomocą NODE.js i Express