2013-11-03 121 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