Zanim omówię możliwe obejścia, chcę tylko podkreślić, dlaczego MongoDB wybrał aby wymusić to ograniczenie w indeksowaniu tablic równoległych. Kiedy indeksujesz tablicę w MongoDB, tworzy indeks wielokluczowy z jednym kluczem na element tablicy. Dlatego jeśli utworzysz indeks złożony na dwóch tablicach, jednej z M odrębnymi wartościami, a drugiej z N odrębnymi wartościami, indeks zasadniczo ma MN kluczy. Jest to bardzo złe — jest nieliniowe w liczbie odrębnych elementów tablicy. Weź pod uwagę ilość pracy potrzebnej do utrzymania takiego indeksu podczas dodawania lub usuwania elementów tablicy.
OK, pomijając uzasadnienie, aby obejść to ograniczenie, pomocne będzie użycie aktualnej wersji MongoDB (2.6), która obsługuje przecinanie indeksów. Można utworzyć indeks na CustomerInformations
i VehicleLicenseDisks
a następnie MongoDB może używać obu indeksów i przecinać je, aby obsługiwać zapytania, które mają ograniczenia na oba.
Jeśli z jakiegoś powodu utkniesz przy MongoDB <2.6, możesz rozważyć przeprojektowanie schematu lub zależeć od indeksów, które używają co najwyżej jednego z pól tablicy.