【问题标题】:Node.js + mongoDB, error with mongojs $in operatorNode.js + mongoDB,mongojs $in 运算符出错
【发布时间】:2014-06-07 12:56:22
【问题描述】:

我正在使用 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);
            });

谁能指出我哪里出错了?非常感谢。

问候, 赤胆

【问题讨论】:

    标签: node.js mongodb mongodb-query mongojs


    【解决方案1】:

    你应该替换:

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

    作者:

    var temp = mongojs.ObjectId(iValue);
    

    【讨论】:

      猜你喜欢
      • 2019-11-02
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 2012-05-21
      • 2021-09-17
      • 2012-03-22
      • 2013-06-03
      • 1970-01-01
      相关资源
      最近更新 更多