लॉकिंग का एक निश्चित स्तर हमेशा होता है कि आपके MongoDB संस्करण के आधार पर या तो संग्रह या पुराने डेटाबेस स्तर, या यहां तक कि संभवतः WiredTiger स्टोरेज इंजन के साथ दस्तावेज़ स्तर होने की संभावना है। $out
हालाँकि, लिखने पर उपज होती है, इसलिए व्यक्तिगत दस्तावेज़ पाइपलाइन से आउटपुट होते हैं और सभी एक बार में नहीं होते हैं, इसलिए प्रत्येक अद्यतन प्रति दस्तावेज़ परमाणु है।
यहां तक कि mapReduce कमांड यह विकल्प है , जहां आप "गैर-परमाणु" को एक ऐसी स्थिति के रूप में सेट कर सकते हैं, जहां एक mapReduce का आउटपुट संग्रह समान व्यवहार प्रदर्शित करेगा।
$out
. के साथ ध्यान रखने वाली एक बात संग्रह से सभी दस्तावेज़ (किसी मौजूदा अनुक्रमणिका को प्रतिस्थापित नहीं) हटा देगा क्योंकि "प्रतिस्थापन" मोड का उपयोग करते समय वह चरण निष्पादित होता है। इसलिए "बदलें" सेट के साथ निर्देशित संग्रह से पढ़ने या लिखने का प्रयास विफल होने की संभावना है (या अप्रत्याशित परिणाम उत्पन्न करें) जबकि एकत्रीकरण ऑपरेशन प्रगति पर है।
शार्प किए गए संग्रह और कैप्ड संग्रह से संबंधित अन्य सीमाएं दस्तावेज़ीकरण में नोट की गई हैं।