關於pymongo的去重方法, 網上找了老半天,都沒有發現單獨對pymongo裡面的資料進行去重的方法
網上說的最多的是 使用 distingct 方法進行去重操作, 但是這個方法,只是返回了去重之後的資料, 並沒有返回整個資料列表
而且並不是說執行過後, 就把資料庫中重複的內容刪除了, 因此並沒有達到我的需求
def delete_repeat_data():
import pymongo
client = pymongo.mongoclient('localhost', 27017)
db = client.local
collection = db.person
for url in collection.distinct('name'):#使用distinct方法,獲取每乙個獨特的元素列表
num= collection.count()#統計每乙個元素的數量
print (num)
for i in range(1,num):#根據每乙個元素的數量進行刪除操作,當前元素只有乙個就不再刪除
print ('delete %s %d times '% (url,i))
#注意後面的引數, 很奇怪,在mongo命令列下,它為1時,是刪除乙個元素,這裡卻是為0時刪除乙個
collection.remove(,0)
for i in collection.find():#列印當前所有元素
print(i)
print (collection.distinct('name'))#再次列印一遍所要去重的元素
def delete_single_database_repeat_data():
import pymongo
client = pymongo.mongoclient('localhost', 27017)
db=client.gifdb #這裡是將要清洗資料的資料庫名字
for table in db.collection_names():
print('table name is ',table)
collection=db[table]
for url in collection.distinct('gif_url'):#使用distinct方法,獲取每乙個獨特的元素列表
num= collection.count()#統計每乙個元素的數量
print (num)
for i in range(1,num):#根據每乙個元素的數量進行刪除操作,當前元素只有乙個就不再刪除
print ('delete %s %d times '% (url,i))
#注意後面的引數, 很奇怪,在mongo命令列下,它為1時,是刪除乙個元素,這裡卻是為0時刪除乙個
collection.remove(,0)
for i in collection.find():#列印當前所有元素
print (i)
原文:
資料庫去重
資料庫資料去重方法 假設現在資料庫中有乙個人員表 user 表中包括 主鍵id,姓名name 身份證號碼id number等字段。由於程式的的原因,後來發現表中有許多理論上重複的資料 例如姓名 和身份證號相同的資料 現在要求根據身份證號碼和姓名去除表中的重複資料。select max id from...
php 資料庫去重
對於兩種去重方式 利用distinct去重 簡單易用,但只能對於單一欄位去重,並且最終的結果也僅為去重的字段,實際應用價值不是特別大。利用group去重,最終的顯示結果為所有字段,且對單一字段進行了去重操作,效果不錯,但最終顯示結果除去去重字段外,按照第乙個字段進行排序,可能還需要處理。test d...
資料庫資料去重方法
1.2個結果進行union 時,也可以去重 2.group by 也可以去重 below is a reprint of others 假設現在資料庫中有乙個人員表 user 表中包括 主鍵id,姓名 身份證號碼 等字段。由於程式的的原因 好來發現表中有許多理論上重複的資料 即姓名 和身份證號相同的...