2015-12-02 51 views
1

我传递的查询参数是这个样子查询解析MongoDB中

var str="["56557e9e8091afc81a4371c8","565ac01b076fd1141492b594","565ab985076fd1141492b586","565aba0a076fd1141492b58c","565ab9d3076fd1141492b588","565aba4b076fd1141492b58e"]"; 

,它正在接收到我的节点API,它是这个样子

console.log(req.query.pageModalIds); 

现在我想解析我的查询是这样的

return RuleSetModel.find({ 'pageId': { $in: req.query.pageModalIds } }, function (err, ruleset) { 
     if (!err) { 
      console.log('get rule set'); 
      return res.send(ruleset); 
     } else { 
      res.statusCode = 500; 
      console.log('Internal error(%d): %s', res.statusCode, err.message); 
      return res.send({ error: 'Server error' }); 
     } 
    }); 

此方法不提供我的数据。什么是我的错。谢谢。

N.B这是工作。如果我设置为固定参数,低于..

return RuleSetModel.find({ 'pageId': { $in: ["565a9fddf84313fc08b260dc","565ac01b076fd1141492b594"] } }, function (err, ruleset) { 
+0

是pageId ObjectId还是DB中的简单字符串? –

+0

@SarathNair,是 – Shohel

+0

我没有得到你 –

回答

0

我认为问题在于req.query.pageModalIds。由于您没有对其进行任何处理,因此它可能保持为字符串对象。你需要将其转换成数组对象申请query.A样品之前如下图所示,

var pageModalIds = JSON.parse(req.query.pageModalIds) 

在这之后,你可以在查询申请$这个新的变量。试试这个,让我知道。 :)

+0

感谢你的兄弟,它正在工作 – Shohel