MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

Mongodb सरणी में एम्बेडेड दस्तावेज़ वापस करने के लिए फ़ील्ड का चयन करें

हां, लेकिन जैसा आप चाहते हैं वैसा नहीं। यदि आप निम्न कार्य करते हैं, तो आपको केवल सरणी का पहला तत्व वापस मिलेगा:

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 के साथ बात यह है कि मूल दस्तावेज़ हमेशा है लाया। प्रश्न शीर्ष-स्तरीय दस्तावेज़ लौटाते हैं। यह पूरी वास्तुकला में बेक किया हुआ है। यहां तक ​​​​कि अगर आप दस्तावेज़ के केवल एक टुकड़े का अनुरोध करते हैं, तो सर्वर को अभी भी पूरे दस्तावेज़ को आपको अनुरोधित टुकड़े की सेवा करने से पहले स्मृति में लोड करना होगा।

इसका एकमात्र तरीका नया एग्रीगेशन फ्रेमवर्क हो सकता है। , लेकिन वह अभी स्थिर शाखा में नहीं है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. C# का उपयोग करके बहुस्तरीय एम्बेडेड/नेस्टेड MongoDB दस्तावेज़ प्राप्त करें और जोड़ें/अपडेट करें

  2. मोंगोडीबी $atanh

  3. MongoDB में मौजूदा दस्तावेज़ों को कैसे अपडेट करें

  4. स्प्रिंग डेटा MongoDB BigDecimal समर्थन

  5. बैकएंड डेटा के रूप में नोडज और मोंगोडीबी का उपयोग करके आलसी लोडिंग