2013-01-12 21 views
1

我試圖讓node.js寫入控制檯表中的數據,我的其他表工作。我無法讓mongoose/node.js正確檢索數據。我究竟做錯了什麼?

每當我嘗試,我得到以下的輸出:

NO ERROR! 
QUERY:{"emitted":{"complete":[[]]},"_events":{}} 

我失去了在架構定義的東西嗎? 任何幫助,將不勝感激。
- 埃裏克



以下是從蒙戈外殼:

> db.userAssessments.find({}) 
{ "accountId" : "509683edcb884b0000000001", "created" : ISODate("2013-01-12T03:31:20.723Z"), "_id" : ObjectId("50f0d9084469766bb7000001") } 

這是我的JS:

var userAssessmentsSchema = new mongoose.Schema({ 
    accountId : String, 
    created : Date, 
    id: String 
}); 

ANALYZER.userAssessments = mongoose.model('userAssessments', userAssessmentsSchema); 
ANALYZER.analyzeAssessment = function() { 
    var query = ANALYZER.userAssessments.find({}).exec(function(err, ass) { 
     if (!err) { 
      console.log("NO ERROR!"); 
      console.log("QUERY:" + JSON.stringify(query)); 
     } else { 
      console.log("ERROR!"); 
     } 
    }); 
}; 

回答

2

find查詢的結果傳遞給作爲第二個參數的exec回調(ass在你的代碼中)。您分配給query的返回值是從exec返回的Promise對象。

UPDATE

你的另一個問題是,貓鼬pluralizes and lower-cases型號,以獲得集合名稱,如果你不提供一個。要使其使用userAssessments集合而不是userassessments,您需要在mongoose.model調用中提供該集合名稱。

所以,你的代碼應該是這樣的,而不是:

ANALYZER.userAssessments = mongoose.model(
    'userAssessments', userAssessmentsSchema, 'userAssessments'); 

ANALYZER.analyzeAssessment = function() { 
    ANALYZER.userAssessments.find({}).exec(function(err, ass) { 
     if (!err) { 
      console.log("NO ERROR!"); 
      console.log("QUERY:" + JSON.stringify(ass)); 
     } else { 
      console.log("ERROR!"); 
     } 
    }); 
}; 
+0

感謝評論,仍然沒有工作。 –

+0

在這次更改後你看到的記錄是什麼? – JohnnyHK

+0

沒有錯誤! QUERY:[] –

相關問題