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

Индексиране на паралелни масиви в Mongodb

Преди да говоря за възможни решения, искам само да подчертая защо MongoDB избра за налагане на това ограничение върху индексирането на паралелни масиви. Когато индексирате масив в MongoDB, той създава многоключов индекс с един ключ на елемент от масива. Следователно, ако създадете съставен индекс върху два масива, един с M отделни стойности и един с N отделни стойности, индексът по същество има MN ключове. Това е много лошо - това е нелинейно в броя на отделните елементи на масива. Помислете за количеството работа, необходимо за поддържане на индекс като този, когато добавяте или премахвате елементи от масив.

Добре, като оставим настрана обосновката, за да заобиколите това ограничение, ще бъде полезно да използвате текущата версия на MongoDB (2.6), която поддържа пресичане на индекси. Човек може да създаде индекс на CustomerInformations и VehicleLicenseDisks и след това MongoDB може да използва и двата индекса и да ги пресича, за да обслужва заявки, които имат ограничения и за двата.

Ако по някаква причина сте останали с MongoDB <2.6, тогава вашите възможности са или да обмислите препроектиране на схемата, или да разчитате на индекси, които използват най-много едно от полетата на масива.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да върнете множество стойности с помощта на Go Mongo Distinct

  2. Преобразуване на низ в ObjectID в MongoDB

  3. 3 начина да получите седмицата от среща в MongoDB

  4. Отпечатване на изхода на заявката на Mongo във файл, докато сте в mongo shell

  5. Обяснете, сякаш съм на пет:Формуляр с поле за текст и изображение> Маршрути> Контролер> Писане в MongoDB документ - къде отива GridFS?