sql >> Databáze >  >> NoSQL >> MongoDB

Dědění schémat Mongoose

Discriminators jsou mechanismem dědičnosti schématu. Umožňují vám mít více modelů s překrývajícími se schématy na vrcholu stejné základní kolekce MongoDB . spíše než různé dokumenty. Zdá se, že jste nepochopili discriminators z mangusty. Zde je jeden článek, který by vám mohl pomoci, abyste to správně chytili.

Průvodce rozlišovači mangust

Zde je několik ukázek kódů, které splňují váš požadavek, uložit odvozené schéma jako samostatné dokumenty

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. Hromadný import MongoDB pomocí mongoimport ze složky Windows

  2. Ovladač MongoDB Java:odlišný od řazení

  3. Jak mohu pivotovat na MongoDB

  4. MongoDB:nastavení uživatele/hesla pro přístup k db