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