資料庫中的一個欄位已經存在相同的值,想為這個欄位建立一個唯一索引,並刪除多餘的數據,於是建立索引時設定了dropDups 為true,但還是報錯重複key,是怎麼回事呀?或者有什麼方法可以快速刪除多餘的資料呢?
仅有的幸福2017-04-28 09:05:35
可以透過python腳本刪除重複
from pymongo import MongoClient
client = MongoClient()
db = client.dbname
documentname = db.documentname
keys = {}
for k in documentname.find():
key = k['field']
if keys.has_key(key):
print 'duplicate key %s' % key
documentname.remove({'_id':k['_id']})
else:
print 'first record key %s' % key
keys[key]=1
思路很簡單,遍歷並用dict存儲,第二次遇到時刪除。
但這無法控制刪除與保留的對象,具體可以根據你的場景調整腳本
PHP中文网2017-04-28 09:05:35
mongoDB3.0廢棄dropDups參數,以後不能透過這個刪除重複資料了。
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4865696&uid=15795819