MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose find(), jak uzyskać dostęp do dokumentów wynikowych?

Znalazłem błąd. To było bardziej koncepcyjne:mam do czynienia z wywołaniami asynchronicznymi i próbuję zwrócić wynik z innej funkcji i nie wiem, kiedy zostanie wykonana. Więc to, co się dzieje, to wysyłam żądanie wykonania zapytania db i zwracam wynik, który okazuje się być null. Ten kod:

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

zwraca wartość null, ale! console.log(docs) wypisuje do konsoli wszystkie wartości z bazy danych, co próbowałem zrobić. Teraz muszę wprowadzić zmiany, najprawdopodobniej przekazać wywołanie zwrotne, które zostanie wykonane po otrzymaniu wyników.

Po zmianach kod wygląda tak:

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

W ten sposób mogę przekazać obiekt odpowiedzi, aby wysłać imię moich ninja :)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. pobieranie atrybutów schematu z modelu Mongoose

  2. Zapytanie po wypełnieniu w Mongoose

  3. MongoDB, usuń obiekt z tablicy

  4. Jak rejestrować moje zapytania w MongoDB C# Driver 2.0?

  5. Przekazywanie parametrów modelu do modelu mangusty