sql >> Databasteknik >  >> NoSQL >> MongoDB

Meteor:Hur man skriver en publiceringsfunktion som innehåller användarnamnet

Objekt i Courses Samling är vad du publicerar.

Så när du frågar med Courses.find({"canEditCourse": { $in: [ this.userId ] } }); canEditCourse fältet är det du försöker matcha med ett userId (det betyder bokstavligen att hitta alla kurser där canEditCourse arrayen innehåller användar-ID.)

Jag förstår inte varför du skulle vilja använda användarnamn här istället. Vad ger det dig?

Om du vill göra detta måste du ha canEditCourse fältet vara en array av username och inte userId .Det betyder att du måste ändra logiken där kurserna skapas eller redigeras och var detta fält fylls i.

Inte säker på att det är värt besväret. Om det du vill är att slå upp kurser efter användarnamn, slå sedan upp användaren efter användarnamn, hämta hans/hennes användar-ID och slå upp kurserna efter användar-ID.

Meteor.publish('editableCourses', function (username) {
    var myUser = Meteor.users.findOne({'username': username});
    return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});



  1. Hur får man data från MongoDB till enkel array med Node.JS och Mongoose?

  2. Docker compose spring boot redis anslutningsproblem

  3. Scotty använder MongoDB

  4. Rekursiva element i Schema:Mongoose modellering