यह आपकी समस्या का समाधान नहीं करेगा, लेकिन यह आपको सही दिशा में इंगित करेगा और शायद आपको उस समस्या को अलग करने में सक्षम करेगा जिसका उपयोग आप एक नया प्रश्न बनाने के लिए कर सकते हैं:
वहाँ नहीं है। केवल एक अनुक्रमणिका है, और इसका एक नाम और एक प्रमुख विवरणक है। यह वही बात नहीं है। नाम डिफ़ॉल्ट इंडेक्स का _id_
है , इसकी कुंजी है _id
।
_id
सामान्य रूप से क्लाइंट-साइड बनाया जाता है, सर्वर-साइड नहीं। सवाल यह है कि वे कुंजियाँ कहाँ से आती हैं, क्योंकि 2ZGvRfuD8iMvRiXJd
निश्चित रूप से एक ObjectId
नहीं है . यह एक उल्का कुंजी हो सकती है, या आप कुछ कस्टम प्राथमिक कुंजी का उपयोग करते हैं, लेकिन मुझे नहीं पता कि ये कुंजी कैसे उत्पन्न होती हैं। हो सकता है कि जो कुछ भी कुंजी उत्पन्न करता है वह टकराव के लिए अतिसंवेदनशील हो?
इसके बारे में अधिक जानकारी सहायक होगी, लेकिन मैं एक नए प्रश्न को फिर से लिखने का सुझाव दूंगा ताकि प्रश्न बहुत बड़ा न हो या बहुत अधिक इतिहास प्राप्त न हो।
यह पहले उत्तर का सूत्र है:आप अनिवार्य प्राथमिक कुंजी अनुक्रमणिका को नहीं हटा सकते।
संपादित करें:
उल्का, डिफ़ॉल्ट रूप से, आईडी को MongoDb से भिन्न तरीके से जेनरेट करता है
. यह समझ में आता है, क्योंकि ObjectId
के लिए कन्वेंशन यदि क्लाइंट्स की संख्या अधिक है तो टकराव को संभावित बनाता है
(अर्थात यदि क्लाइंट सर्वर इंस्टेंस नहीं हैं, लेकिन क्लाइंट ब्राउज़र हैं, जिनमें से शायद परिमाण के 2-3 ऑर्डर अधिक हैं)।
इसके बजाय, उल्का स्पष्ट रूप से विधि का उपयोग लगातार छद्म यादृच्छिक संख्याएं उत्पन्न करने के लिए करता है क्लाइंट और सर्वर पर . परेशान करने वाली बात यह है कि कार्यान्वयन एक PRNG का उपयोग करता है और एक नहीं पर वापस आ जाता है क्रिप्टो-मजबूत नियतात्मक यादृच्छिक संख्या जनरेटर (एलिया) . दूसरे शब्दों में, यह पता लगाना कि कैसे बिल्कुल आपके आईडी जेनरेट किए जा रहे हैं, यह मुश्किल हो सकता है क्योंकि यह आपके पर्यावरण के बहुत सारे विवरणों पर निर्भर करता है।
समाधान:ObjectId
. का उपयोग करने का प्रयास करें प्राथमिक कुंजी के रूप में:
Orders= new Meteor.Collection('Orders', {idGeneration: 'MONGO'});