MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose findet Element im Array

Ihre Terminologie ist falsch, da diese Struktur kein "mehrdimensionales" Array ist, da diese "Arrays innerhalb von Arrays" haben, daher "Dimensionen". Dies sind nur "Objekte" innerhalb eines Arrays.

Ihr Problem hier ist also ein grundlegender Fall, in dem die Argumente falsch herum sind. Sie brauchen $in nicht nur um ein Array zu durchsuchen, sondern es braucht eine "Liste/ein Array" von Argumenten, die auf das Feld angewendet werden.

Kurz gesagt, suchen Sie einfach das Feld und verwenden Sie "dot notation" :

.find({ "subRegions.code": regionCode }).exec(...);

Sie würden nur $in benötigen für im Wesentlichen ein $or Bedingung, nach alternativen Werten für subRegions.code suchen , also brauchst du das nicht, wenn es nur einen passenden Wert gibt.