हां, लेकिन जैसा आप चाहते हैं वैसा नहीं। यदि आप निम्न कार्य करते हैं, तो आपको केवल सरणी का पहला तत्व वापस मिलेगा:
coll.find({_id:'2'}, { 'objects.0': 1})
हालांकि, आप जो वास्तव में चाहते हैं वह कुछ ऐसा है जो निम्न जैसा दिखता है:
coll.find({_id:'2', 'objects._id': '3'}, { 'objects.$' : 1})
बेशक, यह वास्तव में MongoDB में काम नहीं करता है।
आपका अन्य प्रश्न देख रहे हैं , यह "ऑब्जेक्ट्स की सरणी" के बजाय "एम्बेडेड ऑब्जेक्ट" का उपयोग करने के कारणों में से एक है। "एम्बेडेड ऑब्जेक्ट" के साथ आप निम्न कार्य कर सकते हैं:
coll.find({_id:'2'}, {'objects.3': 1}) // where 3 is the id of the third object
इससे आप केवल "एम्बेडेड ऑब्जेक्ट" चुन सकते हैं जिनकी आपको आवश्यकता है।
MongoDB के साथ बात यह है कि मूल दस्तावेज़ हमेशा है लाया। प्रश्न शीर्ष-स्तरीय दस्तावेज़ लौटाते हैं। यह पूरी वास्तुकला में बेक किया हुआ है। यहां तक कि अगर आप दस्तावेज़ के केवल एक टुकड़े का अनुरोध करते हैं, तो सर्वर को अभी भी पूरे दस्तावेज़ को आपको अनुरोधित टुकड़े की सेवा करने से पहले स्मृति में लोड करना होगा।
इसका एकमात्र तरीका नया एग्रीगेशन फ्रेमवर्क हो सकता है। , लेकिन वह अभी स्थिर शाखा में नहीं है।