Ich versuche, die folgende Liste der Wörterbücher mit dem Namen posts
zu Mongo einzufügen, und bekam einen BulkWriteError: batch op errors occurred
Fehler, den ich nicht zu beheben weiß.Pymongo insert_many BulkWriteError
posts:
[{'#AUTHID': 'fffafe151f07a30a0ede2038a897b680',
'Records': [
{'DATE': '07/22/09 05:54 PM',
'STATUS': 'Is flying back friday night in time to move the rest of his stuff then go to work the next morning... great.'},
......
{'DATE': '07/19/09 04:39 PM', 'STATUS': 'is stealing his net by the lake'}]},
{'#AUTHID': 'fffafe151f07a30a0ede2038a897b680',
'Records': [
{'DATE': '07/22/09 05:54 PM',
'STATUS': 'Is flying back friday night in time to move the rest of his stuff then go to work the next morning... great.'},
{'DATE': '07/19/09 04:39 PM', 'STATUS': 'is stealing his net by the lake'},
....
Der Code, den ich verwendet:
collection = db.posts
collection.insert_many(p for p in posts)
Aber dann bekam ich einen Fehler, der BulkWriteError: batch op errors occurred
sagt und schaffte es nur das erste Wörterbuch zu importieren (entsprechend dem ersten #AUTHID
)
Ich habe einen Link gefunden, der eine ähnliche Situation beschreibt, aber es erklärt nicht viel darüber, warum das passiert oder wie man es löst dieses Problem. Es ist unter der _Warum fügt PyMongo ein ID-Feld zu allen meinen Dokumenten hinzu? in dem folgenden Link:
https://github.com/mongodb/mongo-python-driver/blob/master/doc/faq.rst#id25
Basierend auf Ihren Beispiel-Posts scheint das Dokument doppelt vorhanden zu sein, da der Inhalt derselbe ist. Bitte beachten Sie, dass die FAQ sagt, dass ** einzelnes Dokument ** als Vielfaches eingefügt werden soll. Ich vermute, dass dein 'dict (s)' dieselbe Instanz ist. – CallMeLaNN