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

नेवला स्कीमा निर्माण

एक परिभाषित करता है Schema इसलिए एप्लिकेशन समझता है कि MongoDB से जावास्क्रिप्ट ऑब्जेक्ट्स में डेटा को कैसे मैप किया जाए। Schema आवेदन का एक हिस्सा है। इसमें कुछ भी नहीं . है डेटाबेस के साथ क्या करना है। यह केवल जावास्क्रिप्ट ऑब्जेक्ट्स में डेटाबेस को मैप करता है। तो हाँ - यदि आप अच्छी मैपिंग करना चाहते हैं तो आपको इस कोड को प्रत्येक . में चलाने की आवश्यकता है आवेदन जिसे इसकी आवश्यकता है। यह गेटर्स/सेटर्स/सत्यापन/आदि पर भी लागू होता है।

हालांकि ध्यान दें कि ऐसा करना:

var mongoose = require('mongoose');
var Schema = mongoose.Schema; // <-- EDIT: missing in the original post
var Comments = new Schema({
    title     : String
  , body      : String
  , date      : Date
});
mongoose.model("Comments", Comments);

Schema पंजीकृत करेगा वैश्विक। इसका मतलब यह है कि यदि आप जो एप्लिकेशन चला रहे हैं वह किसी बाहरी मॉड्यूल का उपयोग कर रहा है, तो इस मॉड्यूल में आप बस उपयोग कर सकते हैं

var mongoose = require('mongoose');
var Comments = mongoose.model("Comments");
Comments.find(function(err, comments) {
    // some code here
});

(ध्यान दें कि आपको वास्तव में Schema . पंजीकृत करने की आवश्यकता है इस कोड का उपयोग करने से पहले, अन्यथा एक अपवाद फेंक दिया जाएगा)।

हालाँकि यह सब केवल एक नोड सत्र के अंदर काम करता है, इसलिए यदि आप कोई अन्य नोड ऐप चला रहे हैं जिसके लिए Schema तक पहुंच की आवश्यकता है , तो आपको पंजीकरण कोड को कॉल करना होगा। इसलिए सभी स्कीमा को अलग-अलग फाइलों में परिभाषित करना एक अच्छा विचार है, उदाहरण के लिए comments.js ऐसा दिखाई दे सकता है

var mongoose = require('mongoose');
var Schema = mongoose.Schema; // <-- EDIT: missing in the original post

module.exports = function() {
    var Comments = new Schema({
        title     : String
      , body      : String
      , date      : Date
    });
    mongoose.model("Comments", Comments);
};

फिर फ़ाइल बनाएँ models.js जो इस तरह दिख सकता है

var models = ['comments.js', 'someothermodel.js', ...];

exports.initialize = function() {
    var l = models.length;
    for (var i = 0; i < l; i++) {
        require(models[i])();
    }
};

अब कॉल करना require('models.js').initialize(); किसी दिए गए नोड सत्र के लिए आपके सभी स्कीमा को प्रारंभ करेगा।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं सम्मिलन के समय उल्का संग्रह कैसे क्रमबद्ध कर सकता हूं?

  2. मोंगोडब अद्वितीय क्षेत्र की स्थापना

  3. मोंगोडब कुल में मूल्य स्ट्रिंग करने के लिए $ प्रोजेक्ट ऑब्जेक्ट आईडी कैसे करें?

  4. MongoDB में लौटाए गए दस्तावेज़ों को सीमित करने के 2 तरीके

  5. MongoDB में सशर्त $ राशि