MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Генериране на _id срещу автоматично генериране на ObjectId в MongoDB

ObjectId s са там за ситуации, в които нямате уникален ключ за всеки документ в колекция. Те са уникални, така че не е нужно да се притеснявате за конфликти и те се разделят сравнително добре при големи внедрявания без много притеснения (те имат своите плюсове и минуси, прочетете повече тук ).

ObjectId също така съдържа клеймото за време на клиента, където ObjectId е генериран (освен ако DB сървърът не е конфигуриран да генерира всички ключове). С това, както забелязахте, можете да използвате клеймото за време, за да извършите някои операции с дата. Ако обаче планирате да използвате Aggregation Framework, ще откриете, че не можете да използвате ObjectId във всички операции с дати в момента (проблем ). Ако искате да използвате AF, ще ви е необходимо второ поле, което съдържа датата, като за съжаление я съхранявате двойно с ObjectId вътрешната стойност на.

Ако можете да бъдете сигурни, че _id който генерирате е уникален, тогава няма много причина да използвате ObjectId във вашата структура от данни.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Инсталирайте mongodb на mac os 10.15 за php7

  2. MongoDB, вграден в java

  3. Mongo индексиране на обектни масиви срещу обекти

  4. C# MongoDB - Как да добавяте и премахвате елемент към множество вложени елементи на масив?

  5. $lookup, когато ForeignField е във вложен масив