आपकी शब्दावली बंद है क्योंकि वह संरचना "बहु-आयामी" सरणी नहीं है, क्योंकि उनके पास "सरणी के भीतर सरणी" है, इसलिए "आयाम"। यह एक सरणी के भीतर सिर्फ "ऑब्जेक्ट्स" है।
तो यहां आपकी समस्या तर्कों को गलत तरीके से रखने का एक मूल मामला है। आपको $in
की जरूरत नहीं है
केवल एक सरणी खोजने के लिए, बल्कि यह फ़ील्ड पर लागू करने के लिए तर्कों की "सूची/सरणी" लेता है।
संक्षेप में, बस फ़ील्ड देखें, और "dot notation"का उपयोग करें। ए> :
.find({ "subRegions.code": regionCode }).exec(...);
आपको केवल $in
. की आवश्यकता होगी अनिवार्य रूप से एक $or
. के लिए हालत, subRegions.code
. के लिए वैकल्पिक मान खोज रहे हैं , इसलिए आपको इसकी आवश्यकता नहीं है जब मिलान करने के लिए केवल एक मान हो।