没有引用的Mongoose-Nest模式?

没有引用的Mongoose-Nest模式?,mongoose,mongoose-schema,Mongoose,Mongoose Schema,我有一个带有交易(银行交易)和重复交易(例如每月自动支付账单)的应用程序。我想定义一个RepeatingTransaction模式,该模式有一个基本事务字段,它可以在每次必须执行时复制到事务集合。我不想对引用执行此操作,因为应用程序使用应用程序其他部分中的事务集合。(我花了一些时间弄清楚业务逻辑,这样很好,我不想改变它) 理想的情况是,如果有一种方法可以将我的事务模式嵌套到RepeatingTransaction,以避免代码重复 那么,有没有一种不用引用就嵌套模式的方法呢?您可以简单地做到这一点

我有一个带有交易(银行交易)和重复交易(例如每月自动支付账单)的应用程序。我想定义一个RepeatingTransaction模式,该模式有一个基本事务字段,它可以在每次必须执行时复制到事务集合。我不想对引用执行此操作,因为应用程序使用应用程序其他部分中的事务集合。(我花了一些时间弄清楚业务逻辑,这样很好,我不想改变它)

理想的情况是,如果有一种方法可以将我的事务模式嵌套到RepeatingTransaction,以避免代码重复


那么,有没有一种不用引用就嵌套模式的方法呢?

您可以简单地做到这一点。只需将您的模式嵌套在其他模式中,它就可以正常工作

我做错的是,我试图在我的模式中加入一个模型。为了在我的
/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
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);
))

和一个重复传输模型:

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
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);
当然还有一个交易模式:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

let TransactionSchema = new Schema({
    ...
});

module.exports = TransactionSchema;