किसी संग्रह में दस्तावेज़ों की संख्या प्राप्त करने के लिए, db.collection.find({}).count()
का उपयोग करें ।
हालांकि, आप जो करने की कोशिश कर रहे हैं वह काम नहीं करेगा। जब आपके पास डेटाबेस में बहुत सी समानांतर पहुंच होती है, तो यह संभव है कि एकाधिक थ्रेड एक ही समय में ऐसा करते हैं, एक ही गिनती प्राप्त करते हैं और इस प्रकार एक ही आईडी के साथ एक दस्तावेज़ सम्मिलित करेंगे। CAP प्रमेय के अनुसार , MongoDB जैसा एक वितरित डेटाबेस इस तरह की स्थिरता प्रदान नहीं कर सकता है।
इसके बजाय आपको जो करना चाहिए वह MongoDB ObjectId
पर निर्भर है। दस्तावेजों के लिए विशिष्ट पहचानकर्ता के रूप में है। जब आप _id
के लिए स्वयं का मान प्रदान नहीं करते हैं, तो MongoDB प्रत्येक दस्तावेज़ के लिए इन्हें स्वचालित रूप से जेनरेट करता है . ऑब्जेक्ट आईडी विश्व स्तर पर अद्वितीय हैं (किसी भी व्यावहारिक उद्देश्य के लिए पर्याप्त अद्वितीय), इसलिए आपको कोई टकराव नहीं मिलेगा। वे टाइमस्टैम्प से भी शुरू होते हैं, इसलिए जब आप _id
. के अनुसार ऑर्डर करते हैं आपको मोटे तौर पर कालानुक्रमिक क्रम मिलता है (जैसा कि पहले कहा गया था, एक सख्त एक वितरित प्रणाली द्वारा कालानुक्रमिक क्रम प्रदान करना असंभव है)।
एक नियम के रूप में, जब भी आप AUTO_INCREMENT
. का उपयोग करेंगे SQL में, आप MongodDB में ObjectId's का उपयोग करने की संभावना रखते हैं।