Node.js Mongoose查询返回空

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

我正在尝试创建一个Node.js API端点,以返回select控件填充的一些值

我在名为projectStatusValues的集合中有以下文档

{
  "_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。