Mongodb bulk-write Fehler
Ich bin ausführen von bulk-schreiben
bulk = new_packets.initialize_ordered_bulk_op()
bulk.insert(packet)
output = bulk.execute()
und erhalte eine Fehlermeldung, dass ich so interpretieren, dass Paket ist nicht ein dict. Aber ich weiß, dass es ein dict. Was könnte das problem sein?
Hier ist der Fehler:
BulkWriteError Traceback (most recent call last)
<ipython-input-311-93f16dce5714> in <module>()
2
3 bulk.insert(packet)
----> 4 output = bulk.execute()
C:\Users\e306654\AppData\Local\Continuum\Anaconda\lib\site-packages\pymongo\bulk.pyc in execute(self, write_concern)
583 if write_concern and not isinstance(write_concern, dict):
584 raise TypeError('write_concern must be an instance of dict')
--> 585 return self.__bulk.execute(write_concern)
C:\Users\e306654\AppData\Local\Continuum\Anaconda\lib\site-packages\pymongo\bulk.pyc in execute(self, write_concern)
429 self.execute_no_results(generator)
430 elif client.max_wire_version > 1:
--> 431 return self.execute_command(generator, write_concern)
432 else:
433 return self.execute_legacy(generator, write_concern)
C:\Users\e306654\AppData\Local\Continuum\Anaconda\lib\site-packages\pymongo\bulk.pyc in execute_command(self, generator, write_concern)
296 full_result['writeErrors'].sort(
297 key=lambda error: error['index'])
--> 298 raise BulkWriteError(full_result)
299 return full_result
300
BulkWriteError: batch op errors occurred
- was ist Paket? was ist die Ausgabe von
print(packet)
? - Ok, das problem war, dass ich die Zuordnung _id explizit und es stellt sich heraus, dass die Zeichenfolge, die größer als 12-byte-Grenze, mein schlechtes.
- PyMongo erkennt dies ist ein häufiges Problem in Ihren docs und bietet Einblicke, warum dies der Fall ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es kann viele Gründe haben...
das beste ist, dass Sie die try...catch... die Ausnahme, und überprüfen Sie die Fehler,
Sollten Sie überprüfen, 2 Dinge:
Einfügen eins nach dem anderen wird Ihnen die Idee, was passiert ist.
Ok, das problem war, dass ich die Zuordnung _id explizit und es stellt sich heraus, dass die Zeichenfolge, die größer als 12-byte-Grenze, mein schlechtes.