MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mongoose find(), bagaimana cara mengakses dokumen hasil?

Saya telah menemukan kesalahannya. Itu lebih bersifat konseptual:Saya berurusan dengan panggilan asinkron dan saya mencoba mengembalikan hasil dari fungsi lain dan tidak tahu kapan itu akan dieksekusi. Jadi yang terjadi adalah saya membuat permintaan agar kueri db dieksekusi dan mengembalikan hasilnya, yang ternyata nol. Kode ini:

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

mengembalikan nol, tapi! console.log(docs) mencetak ke konsol semua nilai dari database, apa yang saya coba lakukan. Sekarang saya perlu membuat perubahan, kemungkinan besar melewati panggilan balik yang akan dieksekusi setelah menerima hasil.

Dengan perubahan kode terlihat seperti ini:

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

Jadi seperti ini saya dapat melewati objek respons sehingga saya dapat mengirim nama ninja saya :)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Memperbarui array bersarang di mongoDB melalui mongo Shell

  2. MongoDB meminta beberapa koleksi sekaligus

  3. $lookup pada ObjectId dalam array

  4. Ikhtisar Enkripsi Tingkat Bidang Sisi Klien di MongoDB

  5. Bagaimana cara mengembalikan hanya nilai bidang di mongodb