Sua terminologia está desativada, pois essa estrutura não é uma matriz "multidimensional", pois elas têm "matrizes dentro de matrizes", portanto, "dimensões". Isso é apenas "objetos" dentro de uma matriz.
Portanto, seu problema aqui é um caso básico de ter os argumentos de maneira errada. Você não precisa de
$in
apenas para pesquisar um array, mas é preciso uma "lista/array" de argumentos para aplicar ao campo. Resumindo, basta pesquisar o campo e usar "notação de ponto" :
.find({ "subRegions.code": regionCode }).exec(...);
Você só precisaria de
$in
para essencialmente um $or
condição, procurando valores alternativos para subRegions.code
, então você não precisa disso quando há apenas um valor para corresponder.