2011-11-06 72 views
0

我想从一个MongoDB的文档的值获得价值,但我没有得到结果,即使request是正确的:如何从MongoDB的文档

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字符串,我不确定我的查询是否足以从数据库中提取字符串。有任何想法吗?

回答

1

我不得不使用collection.findOne(request, function(...)),而不是仅仅collection.find。这解决了问题。

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