我对Node.js有一个MongoDb获取请求。我想用变量(req.query.pauseTime)替换查询中的两个值。我怎么做。该代码适用于数字,但不适用于普通变量。
我尝试过
let min = req.query.pauseTime -120;
let max = req.query.pauseTime + 120;
,然后尝试将{“ $ gte”:6,6,“ $ lte”:12}替换为{“ $ gte”:min,“ $ lte”:max}
使用6和12时,我会返回
[ { _id: 6, count: 5 },
{ _id: 7, count: 8 },
{ _id: 9, count: 8 },
{ _id: 10, count: 2 },
{ _id: 12, count: 8 },
{ _id: 8, count: 7 },
{ _id: 11, count: 8 } ]
当用变量替换时,我得到一个空数组。
在以下代码中:
videoCommentsRoutes.route('/count').get(function (req, res) {
VideoComments.aggregate([ {"$match": {"pauseTime": {"$gte": 6, "$lte": 12} } },
{"$group" : {_id:"$pauseTime", count:{$sum:1}}}
]).exec(function (err, commCount){
if(err){
console.log(err);
}
else {
res.json(commCount);
}
});
});
那么,如何用变量替换数字6和12?
答案 0 :(得分:0)
尝试这样,将相同的查询与pauseTimeQuery变量一起使用
videoCommentsRoutes.route('/count').get(function (req, res) {
let min = Number(req.query.pauseTime) - 120;
let max = Number(req.query.pauseTime) + 120;
const pauseTimeQuery = {
"$gte": Number(min),
"$lte": Number(max)
}
VideoComments.aggregate([ {"$match": {"pauseTime": pauseTimeQuery } },
{"$group" : {_id:"$pauseTime", count:{$sum:1}}}
]).exec(function (err, commCount){
if(err){
console.log(err);
}
else {
res.json(commCount);
}
});
});
}