2013-01-12 22 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:[] –

相关问题