使用MongoDB

时间:2016-09-11 15:29:11

标签: node.js mongodb

我正在尝试使用Node从MongoDB中检索数据。这是我的代码:

var MongoClient = require('mongodb').MongoClient;
var ObjectId = require('mongodb').ObjectId;
var url = 'mongodb://localhost:27017/test';

module.exports.get = function (req, res) { 
    //console.log(req.params.id)
    //prints 1
    var query = {};
    query['id'] = req.params.id;
    MongoClient.connect(url, function (err, db) {
        db.collection('events')
            .find(query)
            .limit(1)
            .next( function (err, event) {
                if (err) {
                    res.status(500).send('Could not bring the resource requested!');
                }
                if (event) {
                    res.setHeader('Content-Type', 'application/json');
                    res.send(event);
                }
                else {
                    res.status(404).send('Can\'t find the resource you\'re looking for');
                }
                // db.close();
            });
    })
}

在我的数据库中,我有一个文件,它有自己的id字段,与_id不同。

问题在于这行代码:query['id'] = req.params.id; 使用它,我得到event = null

但是,当我将其更改为:query['id'] = 1;时,我会获得我正在寻找的数据。我不知道问题出在哪里。

1 个答案:

答案 0 :(得分:0)

管理解决问题。我之所以这样,是因为req.params.id是一个字符串。

我使用Number(req.params.id)并且它正在运作。