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

MongoDB:WriteResult.getN () हमेशा 0 देता है?

मैं इस धारणा के तहत था कि यह सामान्य MongoDB व्यवहार था, और इसका जावा ड्राइवर से कोई लेना-देना नहीं है।

दस्तावेज़ीकरण में मुझे केवल एक ही चीज़ मिल सकती है यह :

एक insert न तो एक update होना न ही कोई remove , n निर्दिष्ट नहीं लगता है और 0 उतना ही अच्छा डिफ़ॉल्ट मान है जितना कोई है। आप इसे मोंगो शेल में आसानी से देख सकते हैं:

> db.test.insert({_id: 'test'})
> db.getLastErrorObj()
{ "n" : 0, "connectionId" : 7, "err" : null, "ok" : 1 }

जब तक मैं गलत नहीं हूँ, यह वास्तव में कोई मुद्दा नहीं है:अपने आप से पूछें कि किन परिस्थितियों में सम्मिलन विफल हो जाएगा (इसके अलावा, एक कनेक्शन विफलता के अलावा)। केवल एक ही मैं सोच सकता हूं कि एक एकता बाधा उल्लंघन है, जिसके परिणामस्वरूप अपवाद होगा। तो लगभग परिभाषा के अनुसार, यह तथ्य कि आपको एक WriteResult प्राप्त होता है उदाहरण हर तरह से ऑपरेशन सफल रहा और एक दस्तावेज़ डाला गया।

कुछ नोट्स:

  • मेरा पिछला तर्क आपके WriteConcern . पर टिका है इतना अधिक है कि त्रुटियों की सूचना दी जाती है। यदि आप WriteConcern.NONE . का उपयोग कर रहे हैं , उदाहरण के लिए, कभी भी कोई अपवाद नहीं उठाया जाएगा।
  • यदि अपडेट किए गए दस्तावेज़ों की संख्या आपके लिए अनिवार्य है, तो आप हमेशा save का उपयोग कर सकते हैं insert . के बजाय . बहुत साफ नहीं है, लेकिन यह आपकी अपेक्षा के अनुरूप व्यवहार करता है।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. स्कीमा को परिभाषित किए बिना आप नेवला का उपयोग कैसे करते हैं?

  2. कैसे इस नेस्टेड दस्तावेज़ संरचना (MongoDB) में एक प्रश्न बनाने के लिए?

  3. मूल क्षेत्र को जाने बिना मोंगो में सबफील्ड कैसे खोजें?

  4. यूनिकोड प्रतिस्थापन वर्ण खोजने के लिए MongoDB रेगेक्स क्वेरी

  5. निर्यात प्रणाली। MongoDB से प्रोफ़ाइल काम नहीं करती है