Mongodb जावा चालक प्रलेखन से उपलब्ध है
https://www.mongodb.com/blog/post/getting-started-with-mongodb-and-java-part-ii
यह जावा चालक में उपलब्ध कर्सर के बारे में निम्नलिखित कहता है।
कर्सर बैचों में परिणाम लाएगाडेटाबेस, इसलिए यदि आप एक क्वेरी चलाते हैं जो बहुत सारे दस्तावेजों से मेल खाती है, तो आपको यह चिंता करने की ज़रूरत नहीं है कि हर दस्तावेज़ तुरंत मेमोरी में लोड हो गया है। अधिकांश प्रश्नों के लिए, पहले बैच में लौटे 101 दस्तावेज होंगे। लेकिन जैसे ही आप कर्सर पर पुनरावृत्ति करते हैं, चालक स्वचालित रूप से सर्वर से आगे के बैच लाएगा। इसलिए आपको अपने आवेदन में बैचिंग के प्रबंधन के बारे में चिंता करने की ज़रूरत नहीं है। लेकिन आपको यह ध्यान रखने की आवश्यकता है कि यदि आप पूरे कर्सर पर उदाहरण देते हैं (उदाहरण के लिए इसे सूची में रखने के लिए), तो आप सभी परिणामों को प्राप्त करेंगे और उन्हें मेमोरी में डालेंगे।
मुझे यह बहुत भ्रामक लगता है। पहले यह कहता है, "जैसा कि आप कर्सर पर पुनरावृति करते हैं, ड्राइवर स्वचालित रूप से सर्वर से आगे के बैचों को लाएगा", जो समझ में आता है कि आप डॉन "टी" चाहते हैं यह आपके स्थानीय मेमोरी को उड़ा देता है। हालाँकि, यह एक विरोधाभासी कथन के साथ है, जो मूल रूप से कहता है कि यदि आप पूरे कर्सर पर पुनरावृति करते हैं, तो चालक सर्वर से आपके स्थानीय मेमोरी में एक बार में सभी रिकॉर्ड डंप कर देगा।
मैं समझ नहीं पा रहा हूं कि ये दोनों कथन कितने अलग हैं। एक कर्सर पर पुनरावृत्ति और पूरे कर्सर पर पुनरावृत्ति करने के बीच अंतर क्या है?
मैं जानना चाहूंगा कि वास्तव में शाप देने वाले कैसे काम करते हैंयहाँ और एक कर्सर पर पुनरावृति करने के लिए सबसे कुशल तरीका क्या है ताकि सर्वर से सभी रिकॉर्ड "स्मृति रिसाव के कारण एक बार स्थानीय मेमोरी में डंप हो जाए।"
उत्तर:
जवाब के लिए 0 № 1मुझे लगता है कि यह इस तरह से है:
पुनरावृति = दस्तावेज़ लाओ, इसे संसाधित करें, अगला दस्तावेज़ प्राप्त करें ...
पूरी तरह से = दस्तावेज़ लाओ, सूची में भ्रूण दस्तावेज़ जोड़ें, अगला दस्तावेज़ प्राप्त करें ... जब सभी दस्तावेजों को सूची में सभी दस्तावेजों को संसाधित किया गया है