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