MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

उल्का - जब भी संभव हो मुझे Meteor.userId() पर this.userId का उपयोग क्यों करना चाहिए?

आपका प्रश्न Meteor.userId() . को भ्रमित करने लगता है और Meteor.user() . ऐसा लगता है कि प्रश्न का मुख्य भाग पूर्व के बारे में पूछ रहा है जबकि विषय पंक्ति बाद के बारे में पूछ रही है। मैं दोनों को संबोधित करने की कोशिश करूंगा।

  1. सर्वर पर, एक प्रकाशन समारोह के भीतर, Meteor.userId() को कॉल करना या Meteor.user() क्या गड़बड़ी पैदा करेगा . इसके बजाय, this.userId . का उपयोग करें या Meteor.users.findOne(this.userId) , क्रमश। हालांकि, ध्यान दें कि प्रकाशित फ़ंक्शन केवल तभी कॉल किया जाता है जब क्लाइंट सदस्यता लेता है। यदि आप चाहते हैं कि उपयोगकर्ता रिकॉर्ड बदलने पर प्रकाशन बदल जाए, तो आपको observe() करना होगा Meteor.users.find(this.userId) . द्वारा लौटाया गया कर्सर और रिकॉर्ड बदलने पर उचित कार्रवाई करें।
  2. सर्वर पर, जबकि एक विधि कॉल संसाधित किया जा रहा है, Meteor.userId() और Meteor.user() क्रमशः कॉल करने वाले उपयोगकर्ता की आईडी और उनके रिकॉर्ड के अनुरूप होगा। हालांकि, सावधान रहें कि Meteor.user() पर कॉल करें परिणामस्वरूप एक DB क्वेरी होगी क्योंकि वे हैं अनिवार्य रूप से Meteor.users.findOne(Meteor.userId()) के बराबर

    सीधे एक विधि कॉल के भीतर, आप this.userId . का भी उपयोग कर सकते हैं इसके बजाय Meteor.userId() , लेकिन आपको महत्वपूर्ण प्रदर्शन अंतर देखने की संभावना नहीं है। जब सर्वर विधि कॉल प्राप्त करता है, तो यह उपयोगकर्ता की आईडी (और कुछ अन्य जानकारी) के साथ आपके विधि कार्यान्वयन को चलाता है एक विशेष स्लॉट में संग्रहीत फाइबर पर। Meteor.userId() बस मौजूदा फाइबर पर स्लॉट से आईडी पुनर्प्राप्त करता है। यह तेज़ होना चाहिए।

    आमतौर पर Meteor.userId() . का उपयोग करने वाले कोड को रिफलेक्टर करना आसान होता है this.userId . की तुलना में क्योंकि आप this.userId . का उपयोग नहीं कर सकते मेथड बॉडी के बाहर (उदा. this आपके द्वारा विधि निकाय से कॉल किए गए फ़ंक्शन के भीतर 'userId' प्रॉपर्टी नहीं होगी) और आप this.userId का उपयोग नहीं कर सकते हैं ग्राहक पर।

  3. क्लाइंट पर, Meteor.userId() और Meteor.user() त्रुटियों को नहीं फेंकेगा और this.userId काम नहीं करेगा। Meteor.user() को कॉल करता है अनिवार्य रूप से Meteor.users.findOne(Meteor.userId()) , लेकिन चूंकि यह मिनी-मोंगो डीबी क्वेरी से मेल खाता है, इसलिए प्रदर्शन शायद चिंता का विषय नहीं होगा। हालांकि, सुरक्षा कारणों से Meteor.user() . द्वारा लौटाई गई वस्तु अधूरा हो सकता है (विशेषकर यदि autopublish पैकेज स्थापित नहीं है)।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. कैसे जावा चालक के साथ MongoDB में पूर्ण पाठ खोज आदेश निष्पादित करने के लिए?

  2. जावा ड्राइवर का उपयोग करके MongoDB में एक सरणी अद्यतन कर रहा है

  3. Node.js, angular.js और MongoDB, मॉडलिंग संबंधों और अन्य रैंप अप युक्तियों के साथ शुरुआत करना

  4. मोंगोडब 500 त्रुटि के साथ एएसपीनेट कोर वेब एपीआई

  5. मैं रोबोमोंगो का उपयोग करके मोंगोडीबी एटलस से कैसे जुड़ सकता हूं?