我无法让mongoose/node.js正确检索数据。我做错了什么?

我无法让mongoose/node.js正确检索数据。我做错了什么?,node.js,mongoose,Node.js,Mongoose,我正试图让node.js将表中的数据写入控制台,我的其他表也可以工作 无论何时尝试,我都会得到以下输出: NO ERROR! QUERY:{"emitted":{"complete":[[]]},"_events":{}} 架构定义中是否缺少某些内容? 任何帮助都将不胜感激。 -埃里克 以下内容来自mongo shell: > db.userAssessments.find({}) { "accountId" : "509683edcb884b0000000001", "created

我正试图让node.js将表中的数据写入控制台,我的其他表也可以工作

无论何时尝试,我都会得到以下输出:

NO ERROR!
QUERY:{"emitted":{"complete":[[]]},"_events":{}}
架构定义中是否缺少某些内容? 任何帮助都将不胜感激。
-埃里克



以下内容来自mongo shell:

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

find
查询的结果作为第二个参数(
ass
)传递给
exec
回调。指定给
query
的返回值是从中返回的对象

更新

另一个问题是,如果不提供模型名,则使用Mongoose来派生集合名。要使其使用
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!");
        }
    });
};

此更改后,您看到哪些日志记录?@EricW查看更新的答案。它可能使用了错误的集合名称。