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

मोंगो जेसन स्कीमा सत्यापनकर्ता कोई भी काम नहीं कर रहा है

{test:"123"} सत्यापन विफल हो जाता है क्योंकि यह anyOf . में किसी भी स्कीमा के अनुरूप नहीं है , जिसे test1 . की आवश्यकता है या test2 एकमात्र कुंजी के रूप में।

anyOf प्रत्येक उपस्कीमा को आपके उदाहरण पर लागू करता है, और यदि कम से कम एक उपयोजना सत्यापन पास कर लेती है, तो यह मान्य है।

{test1: "123" } विफल रहता है क्योंकि रूट स्कीमा additionalProperties: false आपके ऑब्जेक्ट में किसी भी कुंजी को समान स्कीमा ऑब्जेक्ट properties . में परिभाषित नहीं होने से रोकता है या patternProperties

समाधान कुछ दोहराव है।

In THIS उदाहरण (लिंक ब्राउज़र परीक्षण के लिए है लेकिन केवल ड्राफ्ट -7 के लिए है), मैंने मूल गुण जोड़े हैं test1 और test2 . यह डेटा को अनुमति देगा जहां आपके पास test1 . की कुंजी है या test2 पास करने के लिए, लेकिन मुझे आपकी आवश्यकताओं के बारे में पता नहीं है, मैं आपको यह नहीं बता सकता कि किसी ऑब्जेक्ट को test की कुंजी के साथ अनुमति देने के लिए स्कीमा को कैसे संशोधित किया जाए पास करने के लिए (प्रत्येक anyOf . के रूप में) उपस्कीमा इसे रोकते हैं)।

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "_id": {},
    "test": {},
    "test1": {},
    "test2": {}
  },
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "test1": {}
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "test2": {}
      },
      "additionalProperties": false
    }
  ]
}

अगर आपका इरादा यह जांचना है कि आपके द्वारा डाली जा रही चीजों में से एक में test1 है या test2 , तो मुझे डर है कि JSON स्कीमा आपकी मदद नहीं कर सकती है। Mongo के संदर्भ में JSON स्कीमा केवल प्रत्येक आइटम को अलग-अलग जांच सकता है, और संभावित रूप से सम्मिलित रिकॉर्ड के संग्रह को सत्यापित करने की क्षमता नहीं रखता है।

उपरोक्त उदाहरण स्कीमा में, मैंने टाइप चेकिंग को हटा दिया है क्योंकि यह इस प्रश्न के लिए प्रासंगिक नहीं है, और bsonType वैसे भी JSON स्कीमा प्रकार से भिन्न है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. BadValue अमान्य है या कोई उपयोगकर्ता स्थान सेट नहीं है। कृपया सुनिश्चित करें कि LANG और/या LC_* पर्यावरण चर सही ढंग से सेट हैं

  2. नोड.जेएस से मोंगोडब से कनेक्ट करते समय ECONNREFUSED त्रुटि

  3. ईसी 2 सर्वर या एडब्ल्यूएस सिंपलडीबी पर मोंगोडीबी?

  4. क्या स्कैला में मोंगोडब के लिए कोई ओआरएम जैसी लाइब्रेरी है?

  5. लेखन त्रुटि:पथ एक स्ट्रिंग या बफर मीन स्टैक होना चाहिए