Node.js Mongoose查询返回空
我正在尝试创建一个Node.js API端点,以返回select控件填充的一些值 我在名为projectStatusValues的集合中有以下文档Node.js Mongoose查询返回空,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在尝试创建一个Node.js API端点,以返回select控件填充的一些值 我在名为projectStatusValues的集合中有以下文档 { "_id": { "$oid": "5cab4b2b38802527df2f7ab2" }, "projectStatusDesc": [ "Complete", "Pre-Start", "Active" ] } 我的猫鼬模型被定义为 const projStatusModel = mongoo
{
"_id": {
"$oid": "5cab4b2b38802527df2f7ab2"
},
"projectStatusDesc": [
"Complete",
"Pre-Start",
"Active"
]
}
我的猫鼬模型被定义为
const projStatusModel = mongoose.model("projectStatusValues", {
"projectStatusDesc": [
String
]
});
最后,我使用这段代码来检索数组值
app.get('/v1/projStatus', async (request, response) => {
try {
var status = await projStatusModel.find().exec();
response.send(status);
} catch (error) {
response.status(500).send(error);
}
});
端点看起来不错,我得到了一个200响应,但返回了一个空字符串。有什么想法吗
谢谢 您缺少
Schema
const Schema = mongoose.Schema;
const projStatusModel = mongoose.model("projectStatusValues", new Schema ({
"projectStatusDesc": [
String
]
}));
将集合从projectStatusValues重命名为projectStatusValues,此操作有效。顺便说一下,您没有指定项目ID。将控制台日志置于打开状态。它将返回一个字符串,而find不返回字符串,这没有意义。谢谢您的评论。我不需要在这里返回项目ID。什么是回报?我希望JSON是一个字符串,对吗?Find将返回一个数组,所有找到的文档都作为javascript对象。尝试了,但仍然返回空字符串。我还有其他API,它们似乎在不定义模式的情况下工作得很好,只是像我的示例一样使用模型。我应该一直定义模式吗?如果我的另一个API在没有模式的情况下都可以正常工作,那么不定义它的后果是什么?我不知道它在没有模式的情况下可以正常工作,但是由于每次都使用模式,我建议也这样做。我注意到您将模型命名为
projectStatusValues
,并在控制器中用作projStatusModel
。这是故意的吗?projectStatusValues是集合的名称。当定义为常量和在控制器中使用时,我将模型命名为projStatusModel。