【问题标题】:Get back empty array from MongoDB using curl although the database is filled up with data尽管数据库已填满数据,但使用 curl 从 MongoDB 取回空数组
【发布时间】:2016-06-12 22:01:19
【问题描述】:

我正在学习教程:https://thinkster.io/mean-stack-tutorial 并将其改编为一个辅助项目,以更好地了解平均堆栈的工作原理。

我创建了一个数据库并使用 mongoimport 将 json 导入其中:mongoimport --db cmt2 --collection Course --type json --file myFile.json --jsonArray

我已声明我的数据库使用:mongoose.connect('mongodb://localhost/cmt2');

当我在使用 npm start 启动服务器后 curl 时:curl http://localhost:3000/courses 我只会得到一个空数组作为回报 ( [] )。

但我确信我已经将数据导入到数据库中,因为当我进入 mongo shell 并打开 cmt2 数据库并使用 db.Course.find() 时,我会取回所有数据。

我的课程获取路线也可能是正确的,因为当我在使用 cmt2 之前定义另一个用于测试的数据库时它可以工作:mongoose.connect('mongodb://localhost/cmt');

我不理解的集合可能有点愚蠢,因为我随机命名它们,我不知道我在代码中实际声明要使用哪个集合。

作为参考,这是我用于获取请求的代码:

router.get('/courses', function(req, res, next) {
  Course.find(function(err, courses){
    if(err){ return next(err); }

    res.json(courses);
  });
});

以及我在数据库中导入的 json 中的数据示例:

{
        "code": "ABCD ",
        "name": "ABCDE",
        "list": [
            {
                "code": "ABCDEF ",
                "name": "ABCDEFG"
            },
            {
                "code": "BCDEF ",
                "name": "BCDEFG"
            }]
}

编辑:

cmt(我可以卷曲的数据库)和 cmt2(我不能卷曲的数据库)之间的主要区别在于我使用带有 cmt 的嵌入式模型而没有使用 cmt2

【问题讨论】:

  • 让你的卷曲:mongodb://localhost:27017/cmt 并给你的find 方法的第一个参数一个空文档。看看这是否适合你。

标签: json node.js mongodb curl mean-stack


【解决方案1】:

我导入到了错误的本地主机。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-15
    • 2022-08-03
    • 2012-08-03
    • 2014-05-02
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    相关资源
    最近更新 更多