2013-11-03 119 views
1

我努力工作,猫鼬的填入,但不断收到此错误:MissingSchemaError的猫鼬的填充方法

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

我的代码只需用基本填入功能实验。它看起来像这样:

我定义的模式:

var user = mongoose.Schema({ 
    userName: String 
}); 

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

我创建模型:

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

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

非常感谢。

回答

1

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

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

这是否真的解决了这个问题? – Askdesigners