2013-07-08 5 views
10
db.History.find({'_file.project': 'someproject') 
     .populate('_file', 'name reference project') 
     .sort(sortField || '-created') 
     .limit(max || 64) 
     .exec(this); 

यहां मैं _file संदर्भ से आबादी वाले क्षेत्र पर मेल खाने वाले सभी दस्तावेजों को खोजने का प्रयास कर रहा हूं। काम नहीं लग रहा है। क्या ऐसा कुछ संभव है?मोंगोस एक आबादी वाले क्षेत्र की क्वेरी

मैं प्रोजेक्ट फ़ील्ड को इस ऑब्जेक्ट में डुप्लिकेट कर सकता हूं, केवल पूछताछ के लिए एक कामकाज के रूप में, लेकिन मैं निश्चित रूप से नहीं चाहता।

उत्तर

9

नहीं, find क्वेरी की स्थिति पैरामीटर केवल पूछे जाने वाले संग्रह को संदर्भित कर सकता है।

populate कोई जुड़ाव नहीं है, यह अन्य संग्रहों से संबंधित डेटा को खींचने के लिए अतिरिक्त प्रश्नों के साथ मुख्य क्वेरी का पालन करने के लिए केवल एक सुविधाजनक कार्य है।

+0

धन्यवाद। तो, बस यह सुनिश्चित करने के लिए, परियोजना के आधार पर इतिहास संग्रह से पूछताछ करने के लिए मुझे परियोजना क्षेत्र को जोड़ना होगा, इसे फ़ाइल मॉडल से डुप्लिकेट करना होगा? सभी दस्तावेज़ों को पुनर्प्राप्त करना और फिर बाद में फ़िल्टर करना एक विकल्प नहीं है क्योंकि इतिहास संग्रह संभवतः बहुत बड़ा है। –

+1

@ 0x80 दाएं, या मिलान 'प्रोजेक्ट' के साथ सभी 'फ़ाइल' दस्तावेज़ प्राप्त करें और फिर पहली क्वेरी से '_id' मानों का उपयोग करके' इतिहास 'के विरुद्ध '$ in' क्वेरी का उपयोग करें। – JohnnyHK

+0

मुझे अब मिल गया है। यह जानना अच्छा है कि दो विकल्प हैं। धन्यवाद! –

संबंधित मुद्दे