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

Jak zaimplementować automatycznie zwiększający się podstawowy identyfikator w MongoDB?

Będziesz musiał użyć polecenia findAndModify MongoDB. Dzięki niemu możesz niepodzielnie wybierać i zwiększać pole.

db.seq.findAndModify({
  query: {"_id": "users"},
  update: {$inc: {"seq":1}},
  new: true
});

Spowoduje to zwiększenie licznika dla users kolekcji, którą można następnie dodać do dokumentu przed wstawieniem. Ponieważ jest to atomowe, nie musisz się martwić o warunki wyścigowe, które skutkują sprzecznymi identyfikatorami.

To nie jest tak płynne jak auto_increment MySQL flaga, ale zazwyczaj masz również możliwość określenia własnej fabryki identyfikatorów w sterowniku Mongo, więc możesz zaimplementować fabrykę, która używa findAndModify do inkrementacji i zwracania identyfikatorów w sposób przezroczysty, co daje znacznie bardziej podobne do MySQL doświadczenie.

Wadą tego podejścia jest to, że ponieważ każda wstawka jest zależna od blokady zapisu w twojej kolekcji sekwencji, jeśli robisz dużo zapisów, możesz dość szybko skończyć z wąskim gardłem. Jeśli chcesz tylko zagwarantować, że dokumenty w kolekcji są posortowane w kolejności umieszczania, spójrz na Ograniczone kolekcje.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bitwa o bazy danych NoSQL — porównanie funkcji NoSQL MongoDB i MSSQL

  2. Jak połączyć się z wdrożeniami MongoDB za pomocą GUI Robo 3T?

  3. Jak zaktualizować istniejące dokumenty w MongoDB

  4. Jak obejść brak transakcji w MongoDB?

  5. mongodb:zapytanie o okres między dwoma polami daty