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

Дължина на ID на колекцията в MongoDB

Защо по подразбиране е _id шестнадесетичен низ от 24 знака?

Уникалният идентификатор по подразбиране, генериран като първичен ключ (_id ) за MongoDB документ е ObjectId . Това е 12-байтова двоична стойност, която често се представя като шестнадесетичен низ от 24 знака и един от стандартните типове полета, поддържани от MongoDB BSON спецификация .

12-те байта на ObjectId са конструирани с помощта на:

  • стойност от 4 байта, представляваща секундите от епохата на Unix
  • 3-байтов машинен идентификатор
  • 2-байтов идентификатор на процеса
  • 3-байтов брояч (започващ с произволна стойност)

Каква е важността на ObjectId?

ObjectIds (или подобни идентификатори, генерирани според GUID формула) позволяват уникалните идентификатори да бъдат независимо генерирани в разпределена система.

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

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

Трябва ли да използвам ObjectId по подразбиране?

Не. Ако имате по-подходящ уникален идентификатор за използване, винаги можете да предоставите своя собствена стойност за _id . Това може да бъде единична стойност или съставна стойност, използваща множество полета.

Основните ограничения на _id стойностите са, че те трябва да бъдат уникални за колекция и не можете да актуализирате или премахнете _id за съществуващ документ.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - пример за ръчни препратки

  2. Операции за запис на файлове в mongo скрипт?

  3. Намерете данни за 15 минути с полето ObjectID

  4. съхранявайте изображения в mongodb с помощта на mongoose?? как да?

  5. Грешка [ERR_HTTP_HEADERS_SENT] Не може да се зададат заглавки, след като са изпратени на клиента