gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:45:12 24 4
gpt4 key购买 nike

我试图让 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 的返回值是 Promiseexec 返回的对象.

更新

你的另一个问题是 Mongoose 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!");
}
});
};

关于node.js - 我无法让 mongoose/node.js 正确检索数据。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14290030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com