【问题标题】:mongo db rest Api returns allways same entrymongodb rest Api 总是返回相同的条目
【发布时间】:2017-11-05 12:35:17
【问题描述】:

我正在开发一款 MEAN 应用程序,但有一个奇怪的问题:

我创建了一个 API,它允许我通过 id 获取一个文档:

//Get Single Line
router.get('/lines/:id', function(req, res, next){
    db.lines.findOne(
        { _id: mongojs.ObjectId(req.params.id)},
        function(err, line){
        if(err){
            res.send(err);
        }
        res.json(line);
    });
});

现在当我打电话给http://localhost:3000/api/lines/593379eb0cbd3a4efcdc1875 时,我得到了我的期望:

{"_id":"593379eb0cbd3a4efcdc1875","name":...

但是,当我将此项目移动到实时服务器时,当我调用 http://mydomain/api/lines/593379eb0cbd3a4efcdc1875 时,我总是会得到我收藏中的第一个文档:

{"_id":"59337c480cbd3a4efcdc1876","name":

即使我尝试一些不存在的 id - 我总是只得到第一个文档。 我真的想不通,这里的问题是什么......

【问题讨论】:

    标签: node.js mongodb angular mean-stack


    【解决方案1】:

    您是否尝试调试代码以查找是否将正确的 _id 传递给控制器​​和查询?重新检查与本地和实时环境的存储库匹配的数据库名称和集合名称。

    【讨论】:

    • 感谢您的回答!我已经检查过是否传递了正确的 _id 并且两个环境(开发和实时)都连接到同一个数据库。对于我来说,findOne 函数似乎由于某种原因总是返回集合中的第一个文档
    • 这怎么可能..?我找不到任何线索。你可以试试 { '_id': mongojs.ObjectId(req.params.id)} 。 _id 在引号内。只是为了尝试..!!
    猜你喜欢
    • 2015-01-20
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多