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

नेवला स्कीमा इनहेरिट करना

Discriminators एक स्कीमा विरासत तंत्र हैं। वे आपको समान अंतर्निहित MongoDB संग्रह के शीर्ष पर ओवरलैपिंग स्कीमा वाले एकाधिक मॉडल रखने में सक्षम बनाते हैं . विभिन्न दस्तावेजों के बजाय। ऐसा लगता है कि आप discriminators को गलत समझ रहे हैं नेवले का। यहाँ एक लेख है जो आपको इसे सही ढंग से पकड़ने में मदद कर सकता है।

नेवला भेदभाव करने वालों के लिए गाइड

व्युत्पन्न स्कीमा को अलग दस्तावेज़ों के रूप में सहेजने के लिए, आपकी आवश्यकता को पूरा करने के लिए यहां कुछ कोड नमूने दिए गए हैं

function AbstractEntitySchema() {   
    //call super        
    Schema.apply(this, arguments);     
    //add                                     
    this.add({                              
        entityName: {type: String, required: false},
        timestamp: {type: Date, default: Date.now},
        index: {type: Number, required: false},
        objectID: {type: String},
        id: {type: String}
    });                                     
};
util.inherits(AbstractEntitySchema, Schema);

//Message Schema
var MessageSchema = new AbstractEntitySchema();
MessageSchema.add({
    text: {type: String, required: true},
    author: {type: String, required: true},
    type: {type: String, required: false}
});

//Room Schema
var RoomSchema = new AbstractEntitySchema();
RoomSchema.add({
    name: {type: String, required: true},
    author: {type: String, required: false},
    messages : [MessageSchema],
});

var Message = mongoose.model('Message', MessageSchema);
var Room = mongoose.model('Room', RoomSchema);

// save data to Message and Room

var aMessage = new Message({
     entityName: 'message',
     text: 'Hello',
     author: 'mmj',
     type: 'article'
    });

 var aRoom = new Room({
     entityName: 'room',
     name: 'Room1',
     author: 'mmj',
     type: 'article'
 });

 aRoom.save(function(err, myRoom) { 
    if (err)
        console.log(err);
    else                                  
        console.log("room is saved"); 
 });

 aMessage.save(function(err) {
    if (err)
        console.log(err);
    else
        console.log('user is saved');
 });


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एक संग्रह में कनवर्ट करने के लिए पूर्ववत करें

  2. स्केलेबल फ़ाइल संग्रहण

  3. नेवला में मिश्रित डेटा प्रकार का उपयोग करके मूल्यों को कैसे प्रतिबंधित करें?

  4. Mongodb दस्तावेज़ _id फ़ील्ड से दिनांक और समय प्राप्त करें

  5. सी # मोंगोडीबी जटिल वर्ग क्रमबद्धता