Ich möchte insert_many()
Dokumente in meiner Sammlung. Einige von ihnen können das gleiche Schlüssel/Wert-Paar (screen_name
in meinem Beispiel) als vorhandene Dokumente innerhalb der Sammlung haben. Ich habe einen eindeutigen Index für diesen Schlüssel, daher bekomme ich einen Fehler.Pymongo: insert_many + eindeutigen Index
my_collection.create_index("screen_name", unique = True)
my_collection.insert_one({"screen_name":"user1", "foobar":"lalala"})
# no problem
to_insert = [
{"screen_name":"user1", "foobar":"foo"},
{"screen_name":"user2", "foobar":"bar"}
]
my_collection.insert_many(to_insert)
# error :
# File "C:\Program Files\Python\Anaconda3\lib\site-packages\pymongo\bulk.py", line 331, in execute_command
# raise BulkWriteError(full_result)
#
# BulkWriteError: batch op errors occurred
Ich mag an würde:
- Nicht einen Fehler
- nicht die bereits vorhandenen Dokumente (hier
{"screen_name":"user1", "foobar":"lalala"}
) ändern bekommen - Legen Sie alle nicht-vorhandene Dokumente (hier,
{"screen_name":"user2", "foobar":"bar"}
)
Edit: Wie jemand in Kommentar sagte "diese Frage fragt, wie man eine Bulk einfügen und ignorieren einzigartige Index-Fehler, während immer noch die erfolgreichen Datensätze einfügen. . So ist es kein Duplikat mit der Frage, wie kann ich Masseneinfügung tun“Bitte öffnen Sie es