findOne在Nodejs中发送NULL

问题描述 投票:1回答:1

我想使用findOne在数据库中呈现产品。我在URL中传递了ID,以按其ID查找产品。

但是,我得到了null

这是我的server.js文件。

app.get('/boutique/:id', (request, reponse) => {
    mongo.connect(url, function (err, db) {
        var dbo = db.db("pool");
        var cherche_id = request.params.id;

        dbo.collection("products").findOne({id : cherche_id}, function(err, result) {
            if (err) throw err;
            console.log(result);
            reponse.render('boutique_id');

            db.close();
        });
    });
});

如果我这样改变我的findOne也可以使用:

findOne({id : 2},
javascript node.js database mongodb id
1个回答
1
投票

request.params.id是字符串,而数据库中的id字段是数字。 MongoDB首先比较类型,因此"2"不等于2。您需要先将值转换为数字:

var cherche_id = +request.params.id;

编辑:unary plus operator在这种情况下将字符串转换为数字

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.