我正在尝试使用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;
时,我会获得我正在寻找的数据。我不知道问题出在哪里。
答案 0 :(得分:0)
管理解决问题。我之所以这样,是因为req.params.id
是一个字符串。
我使用Number(req.params.id)
并且它正在运作。