mongodb数据去重
import pymongo
MONGODB_HOST = "172.1.0.1"
# 端口号
MONGODB_PORT = 27017
# 设置数据库名称
MONGODB_DBNAME = '1111'
MONGODB_USER = "1111"
MONGODB_PASS = "1111"
# client = pymongo.MongoClient('localhost', 27017)
client = pymongo.MongoClient('mongodb://{}:{}/'.format(MONGODB_HOST, MONGODB_PORT))
auth = client.admin
auth.authenticate(MONGODB_USER, MONGODB_PASS)
db = client[MONGODB_DBNAME] #这里是将要清洗数据的数据库名字
# for table in db.collection_names(): # 遍历所有表
# print('table name is ',table)
# collection=db[table]
collection=db['document']
for document_url in collection.distinct('document_url'):#使用distinct方法,获取每一个独特的元素列表
num= collection.count({"document_url":document_url})#统计每一个元素的数量
print ('统计每一个元素的数量:', num)
for i in range(1,num):#根据每一个元素的数量进行删除操作,当前元素只有一个就不再删除
print ('delete %s %d times '% (document_url,i))
#注意后面的参数, 很奇怪,在mongo命令行下,它为1时,是删除一个元素,这里却是为0时删除一个
collection.remove({"document_url":document_url},0)
for i in collection.find({"document_url":document_url}):#打印当前所有元素
print (i)