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);