tôi đang thực hiện với số lượng lớn ghiMongoDB số lượng lớn ghi lỗi
bulk = new_packets.initialize_ordered_bulk_op()
bulk.insert(packet)
output = bulk.execute()
và nhận được một lỗi mà tôi giải thích có nghĩa là gói đó không phải là một dict. Tuy nhiên, tôi biết rằng đó là một dict. Điều gì có thể là vấn đề?
Dưới đây là lỗi:
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
gói là gì? đầu ra của 'print (packet)' là gì? – styvane
Ok, vấn đề là tôi đã gán _id một cách rõ ràng và nó chỉ ra rằng chuỗi lớn hơn giới hạn 12 byte, xấu của tôi. –
PyMongo [thừa nhận đây là vấn đề phổ biến trong tài liệu của họ và cung cấp thông tin chi tiết] (http://api.mongodb.org/python/current/faq.html#why-does-pymongo-add-an-id-field-to -tất cả các tài liệu của tôi) là tại sao điều này xảy ra. – tutuDajuju