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

Generowanie autogeneracji _id vs. ObjectId w MongoDB

ObjectId Są tam w sytuacjach, w których nie masz unikalnego klucza dla każdego dokumentu w kolekcji. Są unikalne, więc nie musisz się martwić o konflikty i dość dobrze dzielą się w dużych wdrożeniach bez zbytniego zmartwienia (mają swoje wady i zalety, czytaj więcej tutaj ).

ObjectId zawiera również znacznik czasu klienta, w którym ObjectId został wygenerowany (chyba że serwer DB jest skonfigurowany do generowania wszystkich kluczy). Dzięki temu, jak zauważyłeś, możesz użyć znacznika czasu do wykonania niektórych operacji na dacie. Jeśli jednak planujesz korzystać z agregacji Framework, przekonasz się, że nie możesz użyć ObjectId w dowolnym dniu operacje obecnie (problem ). Jeśli chcesz użyć AF, potrzebujesz drugiego pola, które zawiera datę, niestety podwójnie przechowując ją z ObjectId wartość wewnętrzna.

Jeśli możesz mieć pewność, że _id Generujesz jest unikalny, więc nie ma powodu, aby używać ObjectId w Twojej strukturze danych.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak określić kryteria wykluczania dokumentów z zapytania?

  2. sterownik java mongodb - surowe polecenie?

  3. Kiedy należy używać bazy danych NoSQL zamiast relacyjnej bazy danych? Czy można używać obu w tej samej witrynie?

  4. Jak zakpić mongodb dla testów jednostkowych Pythona?

  5. sprawdź, czy wartość pola wychodzi z tablicy - MongoDB