MissingSchemaError为Mongoose的填充方法

我试图工作mongoose的填充,但不断得到这个错误:

/node_modules/mongoose/lib/connection.js:625 throw new MongooseError.MissingSchemaError(name); ^ MissingSchemaError: Schema hasn't been registered for model "Users". 

我的代码只是基本的填充function的实验。 它看起来像这样:

我定义了模式:

 var user = mongoose.Schema({ userName: String }); var client = mongoose.Schema({ fk_user: { type: mongoose.Schema.ObjectId, ref: 'Users' }, name: String }); 

我创build模型:

 var UserModel = mongoose.createConnection('localhost','fixDB').model('Users', user); var ClientModel = mongoose.createConnection('localhost','fixDB').model('Clients', client); 

我保存了一个实例:

 var user1 = new UserModel({userName: 'issimo'}); user1.save(function(err){ if (err) console.log(err); var client1 = new ClientModel({fk_user:user1._id,name:'co'}); client1.save(function(err){ if (err) console.log(err); console.log('done'); }) }); 

到现在为止还挺好。 我的数据库有两个文件。

现在我使用填充我的客户端来发现关联的用户的用户名。

 ClientModel.findOne().populate('fk_user').exec(function(err, c) { if (err) { return console.log(err); } console.log(c.fk_user.userName); }); 

我得到上面的错误。 我不知所措:我更新了我的mongoose,并尝试了许多不同的代码排列 – 我猜(并希望)我忽略了一些非常基本的东西。 有许多非常类似的SO问题,但没有一个恰好适合。

非常感激。

像这样定义你的模型。 他们不需要任何关于数据库连接的事情。

 var UserModel = mongoose.model('Users', user); var ClientModel = mongoose.model('Clients', client);