2012-08-16 12 views
6

limit ऑपरेटर के लिए नकारात्मक मान क्या है?MongoDB "सीमा" ऑपरेटर नकारात्मक मान

http://www.mongodb.org/display/DOCS/Aggregation+Framework+-+ $ सीमा

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%7B%7Blimit%28%29%7D%7D

मोंगो एक ही सटीक दस्तावेज़ रिटर्न जब मैं limit(1) या limit(-1) करना ??

+0

यह मेरे लिए लग रहा है:

बैचों और कर्सर के बारे में अधिक के लिए, यहाँ एक नज़र डालें। जो अच्छा है क्योंकि ऋणात्मक सीमा का कोई मतलब नहीं है। –

+0

संभव डुप्लिकेट [एक मोंगोडीबी क्वेरी में, नकारात्मक सीमा का क्या मतलब है?] (Http://stackoverflow.com/questions/9833941/in-a-mongodb-query-what-does-a-negative-limit-mean) –

उत्तर

14

यदि सीमा संख्या ऋणात्मक है, तो आम तौर पर डेटाबेस परिणाम की संख्या वापस कर देगा और कर्सर को बंद कर देगा - अनिवार्य रूप से परिणाम का एक बैच वापस कर दिया गया है और उस क्वेरी के लिए कोई और परिणाम नहीं लाया जा सकता है।

कम सामान्य मामले के लिए, यदि नकारात्मक सीमा मान batch size (विशेष रूप से अधिकतम बैच आकार) से अधिक है, तो बैच वापस कर दिया जाएगा और कर्सर बंद हो गया है कि सीमा तक पहुंच गई है या नहीं। इसलिए, एकल बैच नियम निर्दिष्ट सीमा को ट्रम्प करता है यदि सीमा बहुत अधिक है।

यदि सीमा सकारात्मक है तो आप आगे के परिणाम प्राप्त करने के लिए कर्सर को खोल सकते हैं और कर्सर समाप्त होने तक पुन: जारी रह सकते हैं। मोंगो तरह सीमा में प्रवेश का निरपेक्ष मान ले जा रहा है

http://docs.mongodb.org/manual/core/cursors/#cursor-batches http://docs.mongodb.org/manual/reference/method/cursor.limit/#negative-values

+1

धन्यवाद, तो एक विकल्प दूसरे की तुलना में अधिक कुशल है? – kapso

+2

यदि आप वास्तव में परिणामों की संख्या पुनर्प्राप्त कर रहे हैं, तो आपकी सीमा 1 से अधिक है, और आप बैच आकार सीमा के अंतर्गत हैं (मान लें कि डिफ़ॉल्ट 101 है, लेकिन समायोज्य - मेरे उत्तर और बैच अनुभाग में लिंक देखें), फिर नकारात्मक सीमा फायदेमंद हो सकती है। अन्यथा, ऋणात्मक सीमा का उपयोग करने में समस्याएं हो सकती हैं - हमेशा के रूप में बताने का सही तरीका आपके डेटा सेट के साथ परीक्षण करना है। –

संबंधित मुद्दे