我正在尝试从mongodb文档中获取值,但即使request
正确,我也无法获得结果:
db.open(function(err, db){
var request = {
'hash' : req.params['link']
}
db.collection('urlmaps', function(error, collection){
var result = collection.find(request, {'long_url' : 1 });
console.log(JSON.stringify(result));
res.send(JSON.stringify(result));
});
});
我期待一个var result
类型的字符串,我不确定我的查询是否足以从数据库中提取字符串。有什么想法吗?
答案 0 :(得分:2)
试试这段代码。我认为你使用find方法不正确。据我所知,所有nodejs mongodb驱动程序都是异步的,并使用回调来返回值。
db.open(function(err, db){
var request = {
'hash' : req.params['link']
}
db.collection('urlmaps', function(error, collection){
collection.find(request, {'long_url' : 1}, function(err, result){
console.log(JSON.stringify(result));
res.send(JSON.stringify(result));
})
});
});
答案 1 :(得分:1)
我必须使用collection.findOne(request, function(...))
而不是collection.find
。这解决了问题。