Før jeg taler om mulige løsninger, vil jeg blot fremhæve, hvorfor MongoDB har valgt at håndhæve denne begrænsning på indeksering af parallelle arrays. Når du indekserer et array i MongoDB, opretter det et multikey-indeks med én nøgle pr. array-element. Derfor, hvis du opretter et sammensat indeks på to arrays, et med M distinkte værdier og et med N distinkte værdier, har indekset i det væsentlige MN-nøgler. Dette er meget dårligt - det er ikke-lineært i antallet af forskellige array-elementer. Overvej hvor meget arbejde det kræver at vedligeholde et indeks som dette, når du tilføjer eller fjerner array-elementer.
OK, begrundelse til side, for at omgå denne begrænsning vil det være nyttigt at bruge den nuværende MongoDB-version (2.6), som understøtter indekskryds. Man kan oprette et indeks på CustomerInformations
og VehicleLicenseDisks
og så kan MongoDB bruge begge indekser og krydse dem for at vise forespørgsler, der har begrænsninger på begge.
Hvis du af en eller anden grund sidder fast med MongoDB <2.6, så er dine muligheder enten at overveje at redesigne skemaet eller at afhænge af indekser, der højst bruger et af array-felterne.