2015-12-02 77 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