MongoDB資料庫去重操作

2021-08-30 17:31:01 字數 1470 閱讀 9561

關於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,姓名 身份證號碼 等字段。由於程式的的原因 好來發現表中有許多理論上重複的資料 即姓名 和身份證號相同的...