Mongodb插入數據出現:E11000 duplicate key error collection:錯誤解決方案!

今天在保存數據到Mongodb的時候出現E11000 duplicate key error collection:錯誤python

全部數據只有第一條能夠正確insertcode

E11000 duplicate key error collection:所提示的錯誤爲集合惟一主鍵重複了。generator

明明MongoDB的惟一主鍵是根據時間戳自動生成的,怎麼會重複了。io

在網上找了好久,也沒有找到解決方案。class

最終,排除法 ...import

出現主鍵重複的緣由:遍歷

  1. 數據重複。yield

  2. 自定義了惟一主鍵,並重復。im

第二條能夠排除了。那麼是否是第一條緣由呢?時間戳

從表面上來看的話,第一條也是能夠排除的。可是,MongoDB有本身的識別機制。雖然從表面上看數據不是重複的,可是它的ID是否是重複的呢?

爲進一步驗證了一下, 其結果就是....全部數據ID都是同樣的。爲何呢?

由於我使用的是for,並且遍歷了一個generator. 而這個generator是yield生成傳遞過來的,並且yield傳遞過來的數據是.....

好吧,很少說了,直接寫解決方案....下班時間過了一小時了...回家 = - =

解決方案:

其實,解決方案很是簡單...

from copy import deepcopy

而後在yield數據的時候,把數據deepcopy一下,完美解決.....

喔....好餓....

回家次飯.....

相關文章
相關標籤/搜索