MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongoose find(), как да получите достъп до документите с резултати?

Намерих грешката. Беше по-скоро концептуален:имам работа с асинхронни повиквания и се опитвам да върна резултата от друга функция и не знам кога ще се изпълни. Така че това, което се случва, е да направя заявката за изпълнение на заявката за db и да върна резултата, който се оказва нулев. Този код:

getNinjas : function(){
    var res = null;
    Ninja.find({},'name skill',function(err,docs){
        if (err)
            console.log('error occured in the database');
        console.log(docs);
    });     
    return res;
}

връща нула, но! console.log(docs) отпечатва на конзолата всички стойности от базата данни, което се опитвах да направя. Сега трябва да направя промени, най-вероятно да предам обратно извикване, което ще се изпълни при получаване на резултатите.

С промените кодът изглежда така:

getNinjas : function(res){
    var twisted = function(res){
        return function(err, data){
            if (err){
                console.log('error occured');
                return;
            }
            res.send('My ninjas are:\n');
            console.log(data);
        }
    }

    Ninja.find({},'name skill',twisted(res));
}

Така че мога да предам обекта за отговор, за да мога да изпратя името на моите нинджи :)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. SQL RPAD()

  2. Персонализирана десериализация

  3. MongoDB:Как да актуализирам множество документи с една команда?

  4. MongoDB:Как да получите отделен списък със стойности на полета на поддокумента?

  5. Импортиране на json от файл в mongodb с помощта на mongoimport