sql >> Database teknologi >  >> NoSQL >> MongoDB

Meteor:Sådan skriver du en publiceringsfunktion, der indeholder brugernavnet

Elementer i Courses Samling er det, du udgiver.

Så når du forespørger med Courses.find({"canEditCourse": { $in: [ this.userId ] } }); canEditCourse felt er det, du forsøger at matche med et userId (det betyder bogstaveligt talt at finde alle kurser, hvor canEditCourse array indeholder bruger-id.)

Jeg kan dog ikke se, hvorfor du ønsker at bruge brugernavn her i stedet. Hvad giver det dig?

Hvis du ønsker at gøre dette, skal du have canEditCourse felt være en matrix af username og ikke userId .Det betyder, at du skal ændre logikken, hvor kurserne oprettes eller redigeres, og hvor dette felt udfyldes.

Ikke sikker på, at det er besværet værd. Hvis det, du vil, er at slå kurser op efter brugernavn, så slå brugeren op efter brugernavn, få hans/hendes bruger-id og slå kurserne op efter bruger-id.

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



  1. Hvordan man (korrekt) installerer MongoDB på Kubernetes og får adgang til det fra en anden pod/job?

  2. Hvad ville være MongoDB C#-driveren, der svarer til følgende forespørgsel ved hjælp af array-opdateringsoperatoren $[<identifier>]

  3. Sådan får du et tilbagekald på MongoDB collection.find()

  4. Hvordan fjernforbindelse til min MongoDB på min server med java?