Tôi biết đây là một oldie, nhưng tôi đến đây tìm câu trả lời cho cùng một câu hỏi và kết thúc làm một cái gì đó hơi khác một chút. muốn sử dụng discriminators bởi vì tất cả các tài liệu được lưu trữ trong bộ sưu tập tương tự.
ModelBase.js
var db = require('mongoose');
module.exports = function(paths) {
var schema = new db.Schema({
field1: { type: String, required: false, index: false },
field2: { type: String, required: false, index: false }
}, {
timestamps: {
createdAt: 'CreatedOn',
updatedAt: 'ModifiedOn'
}
});
schema.add(paths);
return schema;
};
NewModel.js
var db = require('mongoose');
var base = require('./ModelBase');
var schema = new base({
field3: { type: String, required: false, index: false },
field4: { type: String, required: false, index: false }
});
db.model('NewModelItem', schema, 'NewModelItems');
Tất cả 4 trường sẽ nằm trong NewModelItem. Sử dụng ModelBase cho các mô hình khác mà bạn muốn sử dụng cùng trường/tùy chọn/v.v. Trong dự án của tôi, tôi đặt dấu thời gian vào đó.
Schema.add được gọi trong hàm tạo lược đồ, do đó mô hình sẽ được tập hợp như thể tất cả các trường được gửi trong lệnh gọi hàm dựng ban đầu.
Nguồn
2016-09-17 03:35:16
Cảm ơn các ví dụ từ trang web chính thức. Nhưng tôi muốn thấy một giải pháp hoàn chỉnh. Tôi nghĩ rằng tôi không đơn độc trong vấn đề này. – Erik
Kiểm tra liên kết thứ hai. – hunterloftis
Cảm ơn bạn đã liên kết. Đó là điều tôi cần. – Erik