Node.js + mongoDB,mongojs $ in运算符错误

我正在用mongojs作为驱动程序运行mongoDB的node.js。 我有以下问题,

我尝试使用_id数组查询业务集合,如果我试图dynamic构build查询,如下所示,我得到长度为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); }); 

任何人都可以请指出我哪里错了? 提前谢谢了。

问候,奇丹

你应该replace:

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

通过:

 var temp = mongojs.ObjectId(iValue);