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

Kembalikan hasil luwak dalam kueri pencarian ke variabel

Ada beberapa cara untuk mencapai apa yang Anda inginkan.

1. Menggunakan Kueri Mongoose

Dalam strategi ini, fungsi Anda mengembalikan kueri Mongoose yang nantinya dapat Anda gunakan untuk memanggil metode exec dan gunakan untuk mendapatkan hasilnya.

function getJedisQuery(name){
   var query = Jedi.find({name:name});
   return query;
}

Kemudian Anda dapat menggunakannya hanya dengan melakukan:

var query =  getJedisQuery('Obi-wan');
query.exec(function(err,jedis){
   if(err)
      return console.log(err);
   jedis.forEach(function(jedi){
      console.log(jedi.name);
   });
});

2. Menggunakan Objek Seperti Janji Mongoose

Moogose memberikan dukungan untuk objek seperti janji. Yang harus Anda lakukan adalah sesuatu yang agak mirip dengan apa yang saya lakukan di atas, tetapi kali ini, Anda memanggil exec metode tanpa panggilan balik.

function getJedisPromise(name){
   var promise = Jedi.find({name:name}).exec();
   return promise;
}

Kemudian Anda dapat menggunakannya hanya dengan melakukan:

var promise = getJedisPromise('Luke');
promise.then(function(jedis){
   jedis.forEach(function(jedi){
      console.log(jedi.name);
   });
})

Seperti yang disorot di bagian komentar dari jawaban ini, objek ini sebenarnya bukan janji dan perlu diperhitungkan (lihat Kueri bukan janji).

3. Menggunakan Aliran Luwak

Akhirnya, Mongoose juga mendukung aliran dan aliran adalah penghasil acara. Jadi, Anda bisa mendapatkan streaming dan kemudian berlangganan acara 'data' dan 'kesalahan'. Seperti ini:

function getjedisStream(name){
   var stream = Jedi.find({name:name}).stream();
   return stream;
}

Maka Anda cukup melakukan:

var stream = getJedisStream('Anakin');
stream.on('data', function(jedis){
   jedis.forEach(function(jedi){
      console.log(jedi.name);
   });
});
stream.on('error', function(error){
    console.log(error);
});

Sumber, untuk referensi di masa mendatang.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Terlalu banyak elemen posisi (yaitu '$') ditemukan di jalur

  2. Berlangganan Koleksi Meteor.Users

  3. Hapus gaya kaskade di Mongoose

  4. Bisakah Anda menentukan kunci untuk $addToSet di Mongo?

  5. Cara mengatur mongod.conf bind_ip dengan beberapa alamat ip