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

誰かが私が間違っているところを教えてもらえますか? よろしくお願いします。

よろしく、 チダン

4

1 に答える 1

2

以下を置き換える必要があります。

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

に:

var temp = mongojs.ObjectId(iValue);
于 2014-04-22T22:50:03.603 に答える