Node.js 两个Mongoose模型中的循环依赖
我有两个相互依赖的mongoose模式的循环依赖性问题。代码如下:Node.js 两个Mongoose模型中的循环依赖,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有两个相互依赖的mongoose模式的循环依赖性问题。代码如下: // user.model.js var mongoose = require('mongoose'); var transactionSchema = mongoose.model('Transaction').schema; var userSchema = mongoose.Schema ({ name : String, wallet: Number, transactions: [ {type: mong
// user.model.js
var mongoose = require('mongoose');
var transactionSchema = mongoose.model('Transaction').schema;
var userSchema = mongoose.Schema ({
name : String,
wallet: Number,
transactions: [ {type: mongoose.Schema.Types.ObjectId, ref: 'Transaction'} ]
});
var User = mongoose.model('User', userSchema);
// transaction.model.js
var mongoose = require('mongoose');
var userSchema = mongoose.model('User').schema;
var transactionSchema = mongoose.Schema ({
sourceUser: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
targetUser: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
amount: Number,
status: String
});
var Transaction = mongoose.model('Transaction', transactionSchema);
按如下方式加载:
// app.js
var mongoose = require('mongoose');
require('./models/user.model');
require('./models/transaction.model');
问题很明显,但不清楚如何解决。user.model.js
transaction.model.js
为什么需要在事务文件中导入userSchema?它没有被使用。transactionSchema也是一样。它被用作源用户和目标用户引用,但实际上并非如此。你不需要它。ref:'User'并不意味着您应该更早定义用户集合。我知道,问题解决了。我认为模式对于参考是必要的,但我错了。非常感谢。
var mongoose = require('mongoose');
var userSchema = mongoose.Schema ({
name : String,
wallet: Number,
transactions: [ {type: mongoose.Schema.Types.ObjectId, ref: 'Transaction'} ]
});
var User = mongoose.model('User', userSchema);
var mongoose = require('mongoose');
var transactionSchema = mongoose.Schema ({
sourceUser: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
targetUser: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
amount: Number,
status: String
});
var Transaction = mongoose.model('Transaction', transactionSchema);