2014-04-22 41 views
1

我正在運行帶有mongojs作爲驅動程序的mongoDB的node.js。 我有以下問題,

我嘗試使用_id數組查詢業務集合,如果我嘗試按照以下方式動態構建查詢,那麼我得到的數組長度爲0,這是錯誤的。

myFavoriteBusinessArray.forEach(function (iValue, j) { 
      var temp = 'mongojs.ObjectId("' + iValue + '")'; 
      objectIdArray.push(temp); 
     }); 
     var queryObject = { 
      _id: { 
       $in: objectIdArray 
      } 
     }; 
db1.db.business.find(queryObject, 
      function (err, business) { 
       if (err) res.json(err); 
       res.json(business); 
      }); 
    } 
    else { 
     res.json({"login": "failed"}); 
    } 

在哪裏如果我嘗試以下,那麼我得到正確的數組3回。

db1.db.business.find({_id: { $in: [ mongojs.ObjectId("534fabb10648cd1c1b000002"), mongojs.ObjectId("52d664c15186ad103c000001"), mongojs.ObjectId("534ee1b4b51682bc30000002") ] }}, 
      function (err, business) { 
       if (err) res.json(err); 
       res.json(business); 
      }); 

任何人都可以請指出我哪裏錯了嗎?提前謝謝了。

問候, 赤膽

回答

2

,就應該替換:

var temp = 'mongojs.ObjectId("' + iValue + '")'; 

由:

var temp = mongojs.ObjectId(iValue); 
+0

輝煌,非常感謝胡里奧,我浪費在這種愚蠢的:(我的2個小時。 。 –