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

Długość identyfikatora kolekcji w MongoDB

Dlaczego domyślny _id? 24-znakowy ciąg szesnastkowy?

Domyślny unikalny identyfikator wygenerowany jako klucz podstawowy (_id ) dla dokumentu MongoDB to ObjectId . Jest to 12-bajtowa wartość binarna, która często jest reprezentowana jako 24-znakowy ciąg szesnastkowy i jeden ze standardowych typów pól obsługiwanych przez MongoDB Specyfikacja BSON .

12 bajtów ObjectId jest konstruowanych za pomocą:

  • 4-bajtowa wartość reprezentująca sekundy od epoki Uniksa
  • 3-bajtowy identyfikator maszyny
  • dwubajtowy identyfikator procesu
  • licznik 3-bajtowy (zaczynający się od losowej wartości)

Jakie znaczenie ma identyfikator obiektu?

ObjectIds (lub podobne identyfikatory wygenerowane zgodnie z GUID formuła) pozwalają na niezależne generowanie unikalnych identyfikatorów w systemie rozproszonym.

Możliwość niezależnego generowania unikalnego identyfikatora staje się bardzo ważna, gdy skalujesz do wielu serwerów aplikacji (lub być może wielu węzłów bazy danych w klaster z fragmentami ). Nie chcesz mieć wąskiego gardła centralnej koordynacji, takiego jak licznik sekwencji (np. jak w przypadku automatycznego przyrostu klucza podstawowego), i będziesz chciał wstawiać nowe dokumenty bez ryzyka, że ​​nowy identyfikator okaże się duplikat.

ObjectId jest zazwyczaj generowany przez sterownik klienta MongoDB , ale można je również wygenerować na serwerze MongoDB, jeśli sterownik klienta lub kod aplikacji nie został jeszcze dodany _id pole.

Czy muszę używać domyślnego identyfikatora ObjectId?

Nie. Jeśli masz bardziej odpowiedni unikalny identyfikator do użycia, zawsze możesz podać własną wartość dla _id . Może to być wartość pojedyncza lub wartość złożona wykorzystująca wiele pól.

Główne ograniczenia dotyczące _id wartości są takie, że muszą być unikalne dla kolekcji i nie można zaktualizować ani usunąć _id dla istniejącego dokumentu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wykonywanie zapytań w MongoDB za pomocą znaków greckich przy użyciu JavaScript zwraca brak wyników

  2. jak zaktualizować obiekt z kolekcji mLab za pomocą _id

  3. Perl Mongo znajdź identyfikator obiektu

  4. yii2 z mongodb nie działa przy logowaniu lub rejestracji

  5. Otrzymałem zduplikowane dane przy wielokrotnej subskrypcji