Monday, 15 March 2010

mongodb - Querying sub documents in mongoose -


मॉन्गोस में मॉडल का पालन करें:

  var specie = mongoose.Schema ({आदेश: स्ट्रिंग, परिवार: स्ट्रिंग, जीनस: स्ट्रिंग, प्रजातियां: स्ट्रिंग, गुण: [{संपत्ति: स्ट्रिंग, मान: स्ट्रिंग}]});  

मैं एक क्वेरी बनाने की कोशिश कर रहा हूं जो गुण सरणी में विशिष्ट मानों के आधार पर दस्तावेज़ वापस करेगा।

नीचे मेरी क्वेरी का एक उदाहरण है:

  var query = {$ and: [{"properties.property": "पंखों की संख्या", "properties.value ":" 2 "}, {" properties.property ":" एंटीना अंत "," properties.value ":" clubbed "}}  

मैंने सोचा कि यह क्वेरी काम करेगी लेकिन यह वास्तव में सभी दस्तावेज़ों को "पंखों की संख्या" और "ऐन्टेना एंड" और एक मान "4" और मूल्य "क्लबबर्ड" प्रदान करता है।

{property: "पंखों की संख्या", मान: "2"} और

{संपत्ति: "ऐन्टेना एंड", मान: "क्लबबर्ड"}

हालांकि उपरोक्त प्रश्न उन दस्तावेजों को भी देता है जिनके पास संपत्ति है:

  {property : "पैर की संख्या", मूल्य: "2"}  

मैं इसका समाधान कैसे कर सकता हूं?

मेरा मानना ​​है कि मुझे अपना जवाब मिला। मुझे क्वेरी में $ elemMatch का उपयोग करना होगा:

  var query = {$ और: [{properties: {$ elemMatch: {property: "पंखों की संख्या", मान: "2"} }}, {संपत्तियों: {$ elemMatch: {"property": "ऐन्टेना अंत", "मान": "क्लबबर्ड"}}}]}  

संसाधन लिंक जोड़ना:

यह सही परिणाम वापस आ रहा है।


No comments:

Post a Comment