1

我正在尝试让 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!");
        }
    });
};
4

1 回答 1

2

查询的结果作为第二个参数(在您的代码中)find传递给回调。您分配给的返回值是从返回的对象。execassqueryPromiseexec

更新

您的另一个问题是,如果您不提供模型名称,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!");
        }
    });
};
于 2013-01-12T03:53:26.800 回答