您可以简单地做到这一点。只需将您的 Schema 嵌套在您的其他 Schema 中,它就可以正常工作。
我做错的是我试图将模型放入我的架构中。为了在我的./model 文件夹中轻松解决问题,我有一个事务模型:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const TransactionSchema = require('./schemas/transaction-schema');
TransactionSchema.pre('save', function (next) {
this.createdAt = new Date();
next();
});
module.exports = mongoose.model('Transaction', TransactionSchema
);
还有一个 RepeatingTransaction 模型:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const TransactionSchema = require('./schemas/transaction-schema');
let RepeatingTransactionSchema = new Schema({
user: {type: Schema.Types.ObjectId, ref: 'User'},
transaction: {type: TransactionSchema, required: [true, 'Transation is required']},
period: {type: String, required: [true, 'Interval is required']},
nextDate: {type: Date, required: [true, 'Date is required']}
});
module.exports = mongoose.model('RepeatingTransaction', RepeatingTransactionSchema);
当然还有一个 TransactionSchema:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
let TransactionSchema = new Schema({
...
});
module.exports = TransactionSchema;