आप $elemMatch
. का उपयोग करना चाहेंगे इसके लिए।
{"genres": { "$elemMatch" : {"name": "Shooter"} } }
// or
{"genres": { "$elemMatch" : {"name": { "$in": ["Shooter"] } } } }
https://docs.mongodb.com/manual/reference/operator/ query/elemMatch/
आप मोंगोडब डॉट नोटेशन का भी उपयोग कर सकते हैं और यह आपके जैसे ही काम करेगा:
{"genres.name": "Shooter"}
// or
{"genres.name": { "$in": ["Shooter"]}}
Mongodb जानता है कि genres
. के मामले में इसकी व्याख्या कैसे करें एक सरणी है। बस ध्यान रखें कि डॉट नोटेशन क्वेरी थोड़ी अस्पष्ट है, क्योंकि यह name
से भी मेल खाएगी। genres
. के मामले में संपत्ति संपत्ति एक सरणी नहीं है। उदाहरण के लिए, यह दस्तावेज़ मेल खाएगा:
{"genres": { "name": "Shooter" } }
सभी मामलों में आप name
. को इंडेक्स कर सकते हैं genres
. में संपत्ति सरणी और अनुक्रमणिका का उपयोग लुकअप के लिए किया जाएगा।
db.collection.createIndex({'genres.name': 1})
https://docs.mongodb.com/manual/reference/ शब्दकोष/#टर्म-डॉट-नोटेशन
https://docs.mongodb.com/manual/reference/operator/ क्वेरी/इन/