簡體   English   中英

Node.js + mongoDB,mongojs $ in運算符出錯

[英]Node.js + mongoDB, error with mongojs $in operator

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

有人可以指出我要去哪里了嗎? 提前謝謝了。

此致,赤丹

您應該替換:

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

通過:

var temp = mongojs.ObjectId(iValue);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM