Twoja terminologia jest niewłaściwa, ponieważ ta struktura nie jest „wielowymiarową” tablicą, ponieważ mają „tablice w tablicach”, stąd „wymiary”. To tylko "obiekty" w tablicy.
Więc twój problem tutaj jest podstawowym przypadkiem, że masz argumenty w niewłaściwy sposób. Nie potrzebujesz $in
tylko po to, aby przeszukać tablicę, ale raczej wymaga "listy/tablicy" argumentów do zastosowania do pola.
Krótko mówiąc, po prostu wyszukaj pole i użyj "notacji z kropkami" :
.find({ "subRegions.code": regionCode }).exec(...);
Potrzebujesz tylko $in
zasadniczo dla $or
warunek, wyszukiwanie alternatywnych wartości dla subRegions.code
, więc nie jest to potrzebne, gdy do dopasowania jest tylko jedna wartość.