如何从node.js URLparameter passingmongodb匹配条件

我有一个网页,用户selectvariables来过滤和获取数据库值。 我试图传递$匹配条件variables如下,但我没有得到任何结果回来

url是:example.com?gender=M&date_from=20100101&date_to=201140101

我通过req.query循环来构build匹配条件string。

var matchQuery = []; for (var param in req.query) { qString = "{'" + param + "' : '" + req.query[param] + "'}"; matchQuery.push(qString); } var strmatchQuery = matchQuery.toString(); 

这将输出strmatchQuery为{'gender':'M'},{'date_from':'20100101'},{'date_to':'20140101'}

然后我调用mongodb聚合函数

 dbmodel.aggregate( { $match: { $and: [ strmatchQuery ]} } , { $group : { _id : "$orderyear", totalorders : { $sum : 1 } } } ) 

但是我没有得到任何结果。 有任何想法吗?

 function is_numeric(num) { return !isNaN(num); } var matchQuery = []; var qString = {}; for (var param in req.query) { // You need objects in your query not strings so push objects qString = {}; qString[param] = is_numeric(req.query[param]) ? Number(req.query[param]) : req.query[param]; matchQuery.push(qString); } // Removed the toString() function call dbmodel.aggregate( {$match: {$and: strmatchQuery}}, // Removed the array [ ] {$group: { _id: "$orderyear", totalorders: {$sum: 1}} } );