MongoDB ObjectId
W ciągu kilku pierwszych rozdziałów użyliśmy MongoDB ID obiektu (ObjectId).
W tej części przyjrzymy się strukturze objectID.
ObjectId BSON jest to typ danych 12-bajtowy, ma następujący format:
- Pierwsze cztery bajty datownik
- Kolejne trzy bajtów kodu maszynowego jest
- Natychmiast dwa bajty złożone przez identyfikator procesu (PID)
- Przez ostatnie trzy bajty liczb losowych.
Dokumenty MongoDB przechowywane muszą być kluczowym "_id". Wartość tego klucza może być dowolnego typu, domyślnie jest ObjectId obiektu.
W jednym zestawie wewnątrz każdego dokumentu ma unikalną wartość "_id", aby zapewnić pobieranie wewnątrz każdego dokumentu może być identyfikowany.
MongoDB wykorzystuje objectID, ale nie jest głównym powodem, inne bardziej konwencjonalne podejście (takie jak auto-przyrostu klucz podstawowy), ponieważ wartość klucza podstawowego jest automatycznie zwiększana synchronizację na wielu serwerach jest czasochłonne i pracochłonne.
Utwórz nowy objectID
Użyj następującego kodu, aby wygenerować nowy objectID:
>newObjectId = ObjectId()
Powyższe stwierdzenie zwraca następujący jednoznacznie wygenerowany identyfikator:
ObjectId("5349b4ddd2781d08c09890f3")
Można również użyć wygenerowany identyfikator zamiast MongoDB automatycznie wygenerowanego ObjectId:
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
Dokumenty datownika utworzenia
Od objectID przechowywane w czterech bajtów znacznikiem czasu, więc nie ma potrzeby, aby zapisać pola datownika na dokumenty, można utworzyć czas, aby dokumenty według funkcji getTimestamp:
>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()
Powyższy kod zwróci czas tworzenia dokumentu w formacie ISO:
ISODate("2014-04-12T21:49:17Z")
ObjectId zamienione na ciąg
W niektórych przypadkach może być konieczne, aby przekonwertować ciąg objectID format. Można użyć następującego kodu:
>new ObjectId().str
Powyższy kod zwróci ciąg formatu Guid ::
5349b4ddd2781d08c09890f3