आपको 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 }
)