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

Разлика между съхраняването на ObjectId и неговата низова форма в MongoDB

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

Добре е да се отбележи, че между ObjectId (http://docs.mongodb.org/manual/reference/object-id/) и шестнадесетичното му представяне всъщност има 12 байта разлика, ObjectId е 12 байта и шестнадесетичното му представяне е 24.

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

Силно препоръчвам да не използвате OjbectId шестнадесетично представяне на . Ако искате да "улесните живота си", ще бъде по-добре да създадете различен _id който е по-малък, но по някакъв начин също толкова уникален и удобен за индексиране.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да инсталирам по-ранна версия на mongodb с homebrew?

  2. Как да свържете локална база данни Mongo към docker

  3. Условие на заявка за MongoDb при сравняване на 2 полета

  4. Форматиране на ISODate от Mongodb

  5. Какво означава да поставите работния комплект в RAM за MongoDB?