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

Template MeteorJS tidak menampilkan data, tidak muncul

Dalam hal ini, ini sebagian besar tentang kesalahpahaman model data Meteor.

Meskipun dimungkinkan untuk mengirim data menggunakan pemanggilan metode, biasanya Anda ingin menggunakan publikasi dan langganan untuk mengirim data ke klien. Ini memiliki properti yang hampir ajaib yang kuerinya langsung - yaitu, setiap pembaruan pada kueri akan dikirim ke klien secara otomatis. Kode saat ini yang Anda miliki, jika berfungsi dengan baik, tidak akan memiliki data langsung. Masalah spesifiknya adalah Meteor.call tidak sinkron, jadi penolong pesan Anda tidak akan melihat apa pun.

Sebaliknya, inilah yang ingin Anda lakukan. Di server, Anda akan menyiapkan publikasi kumpulan pesan:

Meteor.publish("someWeirdName", function() {
  return Messages.find({},{ sort: { timestamp:-1}, limit: 20});
});

Perhatikan perbedaan dari kode Anda:tidak ada fetch() , karena kita menginginkan kursor langsung, dan 20 mungkin apa yang Anda maksudkan sebagai opsi batas. Perhatikan bahwa saya juga menyebut ini someWeirdName karena itulah nama publikasi , dan bukan koleksi, yang akan Anda gunakan untuk berlangganan di klien. Untuk penjelasan lebih detail, Anda mungkin ingin melihat postingan ini .

Kemudian, pada klien, Anda hanya memerlukan yang berikut:

Meteor.subscribe("someWeirdName");

Template.messages.helpers({
    showMessages: function(){
        return Messages.find();
    }
});

Perhatikan bahwa panggilan Anda sebelumnya dari Meteor.subscribe("Messages") tidak melakukan apa-apa, karena tidak ada publikasi bernama Messages . Selain itu, kita akan menggunakan cache pesan sisi klien untuk membuat kursor untuk menampilkan pesan.

Selain itu, semua kode ini mengharuskan Anda mendeklarasikan kode berikut di server dan klien:

Messages = new Mongo.Collection("callMeWhateverYouWant");

Perhatikan juga bahwa argumen yang digunakan untuk membuat instance koleksi ini tidak ada hubungannya dengan cara Anda merujuk ke koleksi dalam kode Anda, kecuali jika Anda menulis publikasi khusus . Ini hanya mengidentifikasi koleksi dalam database yang mendasarinya.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. $sum bersyarat di MongoDB

  2. ReferenceField dengan referensi ke dokumen yang ada

  3. Cetak cantik di shell MongoDB sebagai default

  4. Menggunakan AngularJs dan MongoDB/Mongoose

  5. Apakah ada cara untuk membuat mongodb seperti string _id tanpa mongodb?