尽管数据库充满了数据,但是使用curl从MongoDB中获取空数组

时间:2016-02-29 18:24:11

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

我正在遵循教程: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 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);
  });
});

我在db中导入的json中的数据示例:

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

编辑:

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

1 个答案:

答案 0 :(得分:0)

我导入了错误的localhost。