Как получить значение из документа MongoDB - PullRequest
0 голосов
/ 07 ноября 2011

Я пытаюсь получить значение из документа 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 строки типа,Я не уверен, что моего запроса достаточно, чтобы вытащить строку из базы данных.Есть идеи?

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

Попробуйте этот код. Я думаю, что вы используете метод поиска неверно. Как я знаю, все драйверы 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 голос
/ 07 ноября 2011

Мне пришлось использовать collection.findOne(request, function(...)) вместо collection.find.Это решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...