MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Kế thừa các lược đồ Mongoose

Discriminators là một cơ chế kế thừa lược đồ. Chúng cho phép bạn có nhiều mô hình với các lược đồ chồng chéo trên cùng một bộ sưu tập MongoDB cơ bản . hơn là các tài liệu khác nhau. Có vẻ như bạn hiểu sai về discriminators của cầy mangut. Đây là một bài viết có thể giúp bạn nắm bắt chính xác.

Hướng dẫn phân biệt đối xử mongoose

Dưới đây là một số mẫu mã để đáp ứng yêu cầu của bạn, để lưu lược đồ dẫn xuất dưới dạng các tài liệu được phân tách

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. Giá trị giảm dần trong mongodb

  2. Mongoose khác biệt giữa .save () và sử dụng update ()

  3. Tổng hợp MongoDB - giá trị trường dự án dưới dạng trường

  4. Lập mô hình ứng dụng diễn đàn NoSQL với C # / ASP.net MVC

  5. Thực hiện phân trang trong mongodb