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

MongoDB क्वेरी सहायता - उप-वस्तु में किसी भी कुंजी के मूल्यों पर क्वेरी

मैं एक स्कीमा परिवर्तन का सुझाव दूंगा ताकि आप वास्तव में MongoDB में उचित प्रश्न कर सकें।

से:

{
    "userId": "12347",
    "settings": {
        "SettingA": "blue",
        "SettingB": "blue",
        "SettingC": "green"
    }
}

करने के लिए:

{
    "userId": "12347",
    "settings": [
        { name: "SettingA", value: "blue" },
        { name: "SettingB", value: "blue" },
        { name: "SettingC", value: "green" }
    ]    
}

फिर, आप "settings.value" . पर अनुक्रमणित कर सकते हैं , और एक प्रश्न करें जैसे:

db.settings.ensureIndex({ "settings.value" : 1})

db.settings.find({ "settings.value" : "blue" })

परिवर्तन वास्तव में सरल है ..., क्योंकि यह सेटिंग नाम और सेटिंग मान को पूरी तरह से अनुक्रमित फ़ील्ड में ले जाता है, और सेटिंग्स की सूची को एक सरणी के रूप में संग्रहीत करता है।

यदि आप स्कीमा नहीं बदल सकते हैं, तो आप @ JohnnyHK के समाधान का प्रयास कर सकते हैं, लेकिन सावधान रहें कि यह प्रदर्शन के मामले में मूल रूप से सबसे खराब स्थिति है और यह अनुक्रमणिका के साथ प्रभावी ढंग से काम नहीं करेगा।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ऑब्जेक्ट आईडी की सरणी के साथ नेवला स्कीमा कैसे बनाएं?

  2. MongoDB के साथ उप-दस्तावेज़ में सरणी को कैसे फ़िल्टर करें?

  3. मोंगो दो या दो से अधिक क्षेत्रों के लिए प्रविष्टियों के लिए डुप्लीकेट ढूंढता है

  4. mongoose.model में संग्रह का नाम कैसे बदलें?

  5. नेवला में एक उप-दस्तावेज़ खोजें