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