मैं इस धारणा के तहत था कि यह सामान्य 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
. के बजाय . बहुत साफ नहीं है, लेकिन यह आपकी अपेक्षा के अनुरूप व्यवहार करता है।