Items der Courses
Sammlung ist das, was Sie veröffentlichen.
Wenn Sie also mit Courses.find({"canEditCourse": { $in: [ this.userId ] } });
abfragen der canEditCourse
Feld ist das, was Sie versuchen, mit einer userId
abzugleichen (Wörtlich bedeutet es, alle Kurse zu finden, bei denen canEditCourse
Array enthält die Benutzer-ID.)
Ich verstehe jedoch nicht, warum Sie hier stattdessen den Benutzernamen verwenden möchten. Was bringt dir das?
Wenn Sie dies tun möchten, müssen Sie den canEditCourse
haben field ein Array von username
sein und nicht userId
.Das bedeutet, dass Sie die Logik ändern müssen, wo die Kurse erstellt oder bearbeitet werden und wo dieses Feld ausgefüllt wird.
Ich bin mir nicht sicher, ob es die Mühe wert ist. Wenn Sie Kurse anhand des Benutzernamens suchen möchten, suchen Sie den Benutzer anhand des Benutzernamens, erhalten Sie seine/ihre Benutzer-ID und suchen Sie die Kurse anhand der Benutzer-ID.
Meteor.publish('editableCourses', function (username) {
var myUser = Meteor.users.findOne({'username': username});
return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});