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

PyMongo का उपयोग करके डुप्लिकेट कुंजी त्रुटि के बाद प्रविष्टि कैसे जारी रखें?

आपको insert_many . का उपयोग करने की आवश्यकता है विधि और आदेशित विकल्प को False . पर सेट करें ।

db_stock.insert_many(<list of documents>)

जैसा कि आदेशित . में बताया गया है विकल्प दस्तावेज़ीकरण:

<ब्लॉकक्वॉट>

आदेश दिया गया (वैकल्पिक):यदि सही (डिफ़ॉल्ट) दस्तावेज़ सर्वर पर दिए गए क्रम में क्रमिक रूप से डाले जाएंगे। यदि कोई त्रुटि होती है तो शेष सभी प्रविष्टियां निरस्त कर दी जाती हैं। यदि गलत है, तो सर्वर पर दस्तावेज़ों को मनमाने क्रम में, संभवतः समानांतर में डाला जाएगा, और सभी दस्तावेज़ डालने का प्रयास किया जाएगा।

जिसका अर्थ है कि डुप्लीकेट कुंजी त्रुटि होने पर भी प्रविष्टि जारी रहेगी।

डेमो:

>>> c.insert_many([{'_id': 2}, {'_id': 3}])
<pymongo.results.InsertManyResult object at 0x7f5ca669ef30>
>>> list(c.find())
[{'_id': 2}, {'_id': 3}]
>>> try:
...     c.insert_many([{'_id': 2}, {'_id': 3}, {'_id': 4}, {'_id': 5}], ordered=False)
... except pymongo.errors.BulkWriteError:
...     list(c.find())
... 
[{'_id': 2}, {'_id': 3}, {'_id': 4}, {'_id': 5}]

जैसा कि आप _id . के साथ दस्तावेज़ देख सकते हैं 4, 5 को संग्रह में सम्मिलित किया गया।

यह ध्यान देने योग्य है कि यह insertMany . का उपयोग करके शेल में भी संभव है तरीका। आपको बस अनियंत्रित विकल्प सेट करना है ordered करने के लिए False

db.collection.insertMany(
    [ 
        { '_id': 2 }, 
        { '_id': 3 },
        { '_id': 4 }, 
        { '_id': 5 }
    ],
    { 'ordered': false }
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. बिना किसी समूह के मोंगो औसत एकत्रीकरण क्वेरी

  2. MongoDB डालने के प्रदर्शन में सुधार कैसे करें

  3. MongoDB:100 के संग्रह में 10 यादृच्छिक दस्तावेज़ कैसे खोजें?

  4. MongoDB से पांडस डेटा फ्रेम में नेस्टेड डेटा प्राप्त करना

  5. MongoDB के साथ उत्पादन में कैसे जाएं - शीर्ष दस युक्तियाँ