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

मोंगो अज्ञात मूल कुंजी के साथ मूल्य पाते हैं

मुझे यकीन नहीं है कि आप इसे अपने वर्तमान स्कीमा के साथ सुंदर ढंग से हल करने में सक्षम होंगे; slotTypes उप-दस्तावेजों की एक सरणी होनी चाहिए, जो आपके $elemMatch . को अनुमति देगी काम करने के लिए क्वेरी। अभी, यह संख्यात्मक-ईश कुंजियों वाली एक वस्तु है।

यानी आपका दस्तावेज़ स्कीमा कुछ इस तरह होना चाहिए:

{
   "assetsId": {
     "0": "546cf2f8585ffa451bb68369"
  },
   "slotTypes": [
     { "usage": "json" },
     { "usage": "image" }
  ]
}

यदि डेटा लेआउट बदलना कोई विकल्प नहीं है, तो आपको $where के साथ मिलान खोजने के लिए मूल रूप से प्रत्येक दस्तावेज़ को स्कैन करने की आवश्यकता होगी . यह धीमा, अनुक्रमणीय और अजीब है।

db.objects.find({$where: function() {
  for(var key in this.slotTypes) {
    if (this.slotTypes[key].usage == "json") return true;
  }
  return false;
}})

आपको $where पर दस्तावेज़ पढ़ना चाहिए यह सुनिश्चित करने के लिए कि आप इसकी चेतावनियों को समझते हैं, और जो कुछ भी पवित्र है, उसके प्यार के लिए, समारोह में अपने इनपुट को साफ करें; यह लाइव कोड है जो आपके डेटाबेस के संदर्भ में क्रियान्वित हो रहा है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:--query विकल्प के साथ mongoexport का उपयोग करते समय समस्या

  2. मोंगो खोल से NaN को शून्य से कैसे बदलें?

  3. क्यों DuplicateKeyError:E11000 डुप्लीकेट कुंजी त्रुटि अनुक्रमणिका:test.test.$notification_1 dup key:{ :null }

  4. MongoDB में बल्क इंसर्ट बनाम नियमित इंसर्ट का उपयोग करके प्रदर्शन लाभ

  5. पाइमोंगो उबंटू आयात करने में विफलता