db.hello.ensureIndex({"array1":1, "array2":1})
MongoDB na to nie pozwala, ponieważ mówi "może wymknąć się spod kontroli". Jednak wiem, że moje tablice nigdy nie przekroczą długości 3. Jak mogę zhakować MongoDB, aby umożliwić indeksowanie wielu tablic jednocześnie?Jak zindeksować dwie tablice w MongoDB?
Przy użyciu wskaźnika związek najwyżej jedną z wartości indeksowane w każdym dokumencie może być tablicą. Tak więc, jeśli ma wskaźnik na {A 1, B 1} następujące dokumenty są zarówno dobrze:
{A: [1, 2], B: 1} {A 1, B: [1, 2]} dokument, jednakże, nie być włożona za pomocą komunikatu o błędzie "nie można wskaźnik równoległe układy":
{a: [1, 2], b [1, 2 ]} Problem z równoległymi tablicami indeksującymi to: każda wartość w kartezjańskim produkcie indeksowanych kluczy złożonych musi być , co bardzo szybko może wymknąć się spod kontroli .
Czy na pewno potrzebujesz indeksu na obu tablicach? Jeśli masz wysoką selektywność już na jednym z nich, może to być wystarczająco dobre. – Thilo
@Thilo ... pierwsza tablica ma zwykle około 100 elementów. Druga tablica ma około 2-3 elementów. Czy uważasz, że muszę zaindeksować drugą tablicę? – TIMEX
@ TIMEX Nie indeksuj drugiej tablicy i zobacz, jak działa za pomocą polecenia explain. – Joe