sql >> Database >  >> NoSQL >> MongoDB

Meteor:Hoe schrijf je een publicatie-functie met daarin de gebruikersnaam

Onderdelen van de Courses Verzamelen is wat u publiceert.

Dus wanneer u een zoekopdracht uitvoert met Courses.find({"canEditCourse": { $in: [ this.userId ] } }); de canEditCourse veld is wat u probeert te koppelen aan een userId (het betekent letterlijk vind alle cursussen waar de canEditCourse array bevat de userId.)

Ik zie echter niet in waarom je hier gebruikersnaam zou willen gebruiken. Wat levert dat jou op?

Als je dit wilt doen, moet je de canEditCourse . hebben veld een array zijn van username en niet userId .Dat betekent dat u de logica moet wijzigen waar de cursussen worden gemaakt of bewerkt en waar dit veld wordt ingevuld.

Ik weet niet zeker of het de moeite is. Als je Cursussen wilt opzoeken op gebruikersnaam, zoek dan de Gebruiker op op gebruikersnaam, haal zijn/haar gebruikers-ID op en zoek de Cursussen op op gebruikers-ID.

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



  1. Beste manier om verbinding te maken met MongoDB met Node.js

  2. MongoDb update-object in een array op eerste plaats van laatste

  3. Node.js MongoDB collection.find().toArray retourneert niets

  4. Tijdstempel ophalen van mongodb id