mongoose Aggregation _id不接受url参数

时间:2018-06-06 21:41:03

标签: node.js mongodb mongoose mean id

我在Node / Express Framework中的mongoose中有一个查询函数,它聚合来自MongoDB的一些数据:

exports.list_FP_start_end_date_by_ID = function(req, res) { 
    let start = req.params.start;
    let end = req.params.end;
    console.log(req.params.demo_id) //gives 24
    FP.aggregate([
            {
                $match: {"_id": req.params.demo_id}
            },      
            {
                "$addFields": {
                    "someArray": {
                        "$filter": {
                            input: "$someArray",
                            as: "doc",
                            cond: {
                                $and: [
                                    { $gte: [ "$$doc.Timestamp", start ] },
                                    { $lte: [ "$$doc.Timestamp", end ] }
                                ]
                            }
                        }
                    }
                }
            },
            {
                $project: {_id:0, Fahrplanabschnitte:1}
            }       
        ]).exec(function(err, fps) {
            if (err) {
                    res.send(err);
                }

            else {
                res.json(fps);
            }
        })
    }

这里唯一的问题是,如果我使用“req.params.demo_id”作为参数来检索文档的匹配_id,我会得到一个空数组... 但是,如果我对变量进行硬编码,例如24 $match: {"_id": 24},它会给我预期的文件作为json响应..这是我今天遇到的最奇怪的事情......为什么会这样?

我路由的网址如下:

http://localhost:6000/link/Coll/2018-06-11T17:00:00.2018-06-11T22:00:00.24

是:

http://localhost:6000/link/Coll/:start.:end.:demo_id

0 个答案:

没有答案