Node.js 两个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

我有两个相互依赖的mongoose模式的循环依赖性问题。代码如下:

// 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);