Item Courses
Koleksi adalah apa yang Anda publikasikan.
Jadi ketika Anda bertanya dengan Courses.find({"canEditCourse": { $in: [ this.userId ] } });
canEditCourse
bidang adalah apa yang Anda coba cocokkan dengan userId
(secara harfiah berarti menemukan semua Kursus di mana canEditCourse
array berisi userId.)
Saya tidak mengerti mengapa Anda ingin menggunakan nama pengguna di sini. Apa yang membuat Anda?
Jika Anda ingin melakukan ini, Anda harus memiliki canEditCourse
field menjadi array username
dan bukan userId
.Itu berarti Anda perlu mengubah logika di mana Kursus dibuat atau diedit dan di mana bidang ini diisi.
Tidak yakin itu sepadan dengan masalahnya. Jika yang Anda inginkan adalah mencari Kursus berdasarkan nama pengguna, lalu cari Pengguna berdasarkan nama pengguna, dapatkan userId-nya dan cari Kursus berdasarkan userId.
Meteor.publish('editableCourses', function (username) {
var myUser = Meteor.users.findOne({'username': username});
return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});