mongodb数据去重

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)

https://www.jianshu.com/p/9405fa78376a

你可能感兴趣的:(mongodb数据去重)