Elementy Courses
Publikujesz kolekcję.
Tak więc podczas wykonywania zapytania za pomocą Courses.find({"canEditCourse": { $in: [ this.userId ] } });
canEditCourse
pole jest tym, co próbujesz dopasować do userId
(dosłownie oznacza to znalezienie wszystkich kursów, w których canEditCourse
tablica zawiera identyfikator użytkownika.)
Nie rozumiem jednak, dlaczego miałbyś zamiast tego używać nazwy użytkownika. Co ci to daje?
Jeśli chcesz to zrobić, musisz mieć canEditCourse
pole będzie tablicą username
a nie userId
.Oznacza to, że musisz zmienić logikę, w której Kursy są tworzone lub edytowane oraz gdzie to pole jest wypełniane.
Nie jestem pewien, czy jest to warte zachodu. Jeśli chcesz wyszukać kursy według nazwy użytkownika, wyszukaj użytkownika według nazwy użytkownika, uzyskaj jego identyfikator użytkownika i wyszukaj kursy według identyfikatora użytkownika.
Meteor.publish('editableCourses', function (username) {
var myUser = Meteor.users.findOne({'username': username});
return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});