Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में सरल वैलिडेशन करना

MongoDB में JSON स्कीमा वैलिडेटर का उपयोग करके दस्तावेज़ वैलिडेशन लागू करना

MongoDB 3.6+ में createCollection() के साथ validator विकल्प का उपयोग करके JSON स्कीमा आधारित दस्तावेज़ वैलिडेशन लागू करें।

वैलिडेशन के साथ संग्रह बनाना

> db.createCollection( "demo437" , {
  validator: { $jsonSchema: {
    bsonType: "object",
    required: [ "FirstName", "LastName" ],
    properties: {
      FirstName: {
        bsonType: "string",
        description: "This is required"
      },
      LastName: {
        bsonType: "string",
        description: "This is required"
      }
    }
  }}
})
{ "ok" : 1 }

वैलिडेशन टेस्ट - अमान्य दस्तावेज़ (LastName संख्या है)

> db.demo437.insertOne({"FirstName":"John","LastName":1234});
WriteError: Document failed validation
{ "index" : 0, "code" : 121, "errmsg" : "Document failed validation",
  "op" : { "_id" : ObjectId("5e7757ebbbc41e36cc3cae9a"), "FirstName" : "John", "LastName" : 1234 } }

वैध दस्तावेज़ इन्सर्ट

> db.demo437.insertOne({"FirstName":"John","LastName":"Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e7757f7bbc41e36cc3cae9b") }
> db.demo437.insertOne({"FirstName":"David","LastName":"Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e775816bbc41e36cc3cae9d") }

अमान्य दस्तावेज़ (FirstName संख्या है)

> db.demo437.insertOne({"FirstName":9887,"LastName":"Miller"});
WriteError: Document failed validation
{ "index" : 0, "code" : 121, "errmsg" : "Document failed validation", ... }

सभी वैध दस्तावेज़ देखना

> db.demo437.find();

आउटपुट:

{ "_id" : ObjectId("5e7757f7bbc41e36cc3cae9b"), "FirstName" : "John", "LastName" : "Smith" }
{ "_id" : ObjectId("5e775816bbc41e36cc3cae9d"), "FirstName" : "David", "LastName" : "Miller" }

JSON स्कीमा वैलिडेशन मुख्य विशेषताएं:

कीवर्डउद्देश्य
bsonTypeफील्ड का डेटा टाइप (string, int, double, bool, array, object, date, etc.)
requiredआवश्यक फील्ड्स का ऐरे
propertiesफील्ड-स्तरीय स्कीमा परिभाषा
enumअनुमत मानों की सूची
minimum/maximumसंख्यात्मक रेंज
minLength/maxLengthस्ट्रिंग लंबाई
patternरेगेक्स पैटर्न

वैलिडेशन लेवल:

  • validationLevel: "strict" (डिफ़ॉल्ट) - सभी इन्सर्ट/अपडेट पर लागू
  • validationLevel: "moderate" - मौजूदा अमान्य दस्तावेज़ों को छोड़कर नए पर लागू
  • validationAction: "error" (डिफ़ॉल्ट) - अस्वीकार करें
  • validationAction: "warn" - चेतावनी लॉग करें लेकिन अनुमति दें

मौजूदा संग्रह पर वैलिडेशन जोड़ना:

db.runCommand({
  collMod: "demo437",
  validator: { $jsonSchema: {...} },
  validationLevel: "moderate"
})
  1. - MongoDB में ग्रुप करें और दस्तावेज़ों के मूल्य रिकॉर्ड का योग करें

    इसके लिए, $group का उपयोग करें और उसके भीतर, जोड़ने के लिए $sum के साथ काम करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo527.insertOne({Price:45.5}); { acknowledged : true, insertedId : ObjectId(5e8aff2fef4dcbee04fbbbdc) } > db.demo527.insertOne({Price:55.5}); { acknowledged : true, i

  1. - MongoDB पूर्ण टेक्स्ट खोज कैसे करें

    MongoDB में पूर्ण टेक्स्ट खोज के लिए, $text का उपयोग करें। $text फ़ील्ड्स की सामग्री पर टेक्स्ट खोज करता है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo654.createIndex({Name:text}); { createdCollectionAutomatically : true, numIndexesBefore : 1, numIndexesAfter : 2, ok : 1 } > db.demo654.

  1. - MongoDB में बल्क इंसर्ट कैसे करें?

    MongoDB में बल्क इंसर्ट के लिए, initializeUnorderedBulkOp() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > var bulkInsertDoc = db.demo663.initializeUnorderedBulkOp(); > bulkInsertDoc.insert( { Name: John,CountryName:US} ); > bulkInsertDoc.insert( { Name: Chris,CountryName:UK} ); &