MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडब जावा में इंडेक्सआउटऑफबाउंडसेप्शन

भविष्य के आगंतुकों के लिए सिर्फ एक संदर्भ मान लीजिए कि हमारे पास foo . नामक एक सरणी है जिसमें 10 आइटम हैं। यदि हम निम्नलिखित कोड का उपयोग करके पुनरावृति करने का प्रयास करते हैं तो क्या होगा?:

for(int i = 0;i<=foo.length;i++){
   //some code that uses foo[i] here
}

उत्तर एक IndexOutOfBoundsException है कारण सरल है। जैसा कि पहले कहा गया था foo इसमें 10 तत्व शामिल हैं, जिसका अर्थ है कि आप foo[0] to foo[9] . का उपयोग करके उन तक पहुंच सकते हैं चूंकि सरणी अनुक्रमण 0 से शुरू होता है foo[9] आपके सरणी में अंतिम तत्व शामिल है(दसवां तत्व)`

हालांकि for . में क्या होता है लूप?

जब आप पुनरावृति करते हैं तो आप हमेशा i<=foo.length . की जांच करते हैं जारी रखने के लिए। समस्या यह है कि जब i . का मान 9 व्यंजक है i<=foo.length(which means i<=10) true . का मूल्यांकन करता है .इसका मतलब है कि for लूप एक आखिरी बार चलेगा। जब आपके लूप में ऐसा होगा तो आप foo[10] को एक्सेस करने का प्रयास करेंगे। जो मौजूद नहीं है और इसलिए IndexOutOfBoundsException

इसलिए याद रखें कि जब आप किसी सरणी पर पुनरावृति करना चाहते हैं तो आप हमेशा i<foo.length . का उपयोग करें

तो जैसा कि आपने भी समझ लिया है कि आपकी समस्या का समाधान यह है:

for(int i=0; i< field.length; i++){
    String[] field = allFields.split(",");
    String field1 = "$"+field[i];
    BsonField includeFields = Accumulators.first(field[i], field1);
    includeList.add(includeFields);
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB बनाम MySQL NoSQL - मोंगो बेहतर क्यों है

  2. मोंगो क्वेरी में घटाव काम नहीं करता है?

  3. बहिष्करण चेतावनी:collection.findAndModify बहिष्कृत है। इसके बजाय FindOneAndUpdate, FindOneAndReplace या FindOneAndDelete का उपयोग करें?

  4. उपयोग .where () नेवला के माध्यम से .update () के साथ क्वेरी?

  5. Amazon EC2 में Ubuntu 11.04 पर MongoDB ठीक से स्थापित नहीं है