Елементи от Courses
Колекцията е това, което публикувате.
Така че, когато правите заявка с Courses.find({"canEditCourse": { $in: [ this.userId ] } });
canEditCourse
е това, което се опитвате да съпоставите с userId
(това буквално означава намиране на всички курсове, където canEditCourse
масивът съдържа userId.)
Не виждам защо бихте искали да използвате потребителско име тук вместо това. Какво ви носи това?
Ако искате да направите това, трябва да имате canEditCourse
полето е масив от username
а не userId
.Това означава, че трябва да промените логиката, където се създават или редактират курсовете и къде се попълва това поле.
Не съм сигурен, че си струва труда. Ако това, което искате, е да търсите курсовете по потребителско име, след това да търсите потребителя по потребителско име, да вземете неговия/нейния потребителски идентификатор и да търсите курсовете по потребителски идентификатор.
Meteor.publish('editableCourses', function (username) {
var myUser = Meteor.users.findOne({'username': username});
return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});