Nodejs可变路由
我有和variablesnodejs路由,我试图在MongoDB的使用mongoose的聚集函数中使用这些值:
apiRoutes.get('/val6/:_level/:location', function(req, res) { val6.aggregate([ { $match: { [req.params.location]:true } }, { $sample:{size:1} } ], function(err, val6) { res.json(val6); }) });
当我发送邮递员请求时,我得到一个val2设置为true的随机项目
当我在我的match子句中添加另一个条件时,如下所示:
$match: { [req.params.location]:true, level:1 }
我绝对没有比赛,但在上面的截图,水平是一个。 我究竟做错了什么?
编辑一个
$match: { level:1, [req.params.location]:true }
切换值似乎解决了这个问题(所以我认为这是一个通常与计算的JavaScript值的错误),但导致我下一个问题,我实际上面临着。
console.log(req.params.location); console.log(req.params.level)
/ /logging'val6'(位置)和'1'(级别)在这样的代码内使用它们,不工作:
$match: { level:req.params.level, [req.params.location]:true }
所以硬编码的值工作,但variables值不。 任何人都有线索?