Courses
. के आइटम संग्रह वह है जिसे आप प्रकाशित कर रहे हैं।
इसलिए जब आप Courses.find({"canEditCourse": { $in: [ this.userId ] } });
canEditCourse
फ़ील्ड वह है जिसे आप userId
. से मिलाने का प्रयास कर रहे हैं (इसका शाब्दिक अर्थ है सभी पाठ्यक्रम खोजें जहां canEditCourse
सरणी में उपयोगकर्ता आईडी है।)
मैं यह नहीं देखता कि आप इसके बजाय यहाँ उपयोगकर्ता नाम का उपयोग क्यों करना चाहेंगे। यह आपको क्या मिलता है?
अगर आप ऐसा करना चाहते हैं, तो आपके पास canEditCourse
. होना चाहिए फ़ील्ड username
. की एक सरणी हो और नहीं userId
.इसका मतलब है कि आपको उस तर्क को बदलने की जरूरत है जहां पाठ्यक्रम बनाए या संपादित किए गए हैं और जहां यह फ़ील्ड भरा जा रहा है।
सुनिश्चित नहीं है कि यह परेशानी के लायक है। यदि आप चाहते हैं कि उपयोगकर्ता नाम द्वारा पाठ्यक्रम देखें, तो उपयोगकर्ता को उपयोगकर्ता नाम से देखें, उसका उपयोगकर्ता आईडी प्राप्त करें और उपयोगकर्ता आईडी द्वारा पाठ्यक्रम देखें।
Meteor.publish('editableCourses', function (username) {
var myUser = Meteor.users.findOne({'username': username});
return Courses.find({"canEditCourse": { $in: [ myUser._id ] } });
});