2011-11-06 71 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)); 
     }) 
    }); 
});