如何从mongodb数据库中删除重复记录

希尔帕

我有一个mongoDB集合,其中包含超过500万条记录。从那我需要删除重复的条目。这是我尝试过的代码,

        from pymongo import MongoClient
        conn=MongoClient("mongodb://127.0.0.1:27017")
        db=conn.test

        cursor=db.coll.aggregate(
            [
                {"$group": {"_id":{"Instrument Name":"$Instrument Name","High":"$High","Low":"$Low","V":"$V","Date":"$Date","Close":"$Close","Open":"$Open"}, "unique_ids": {"$addToSet": "$_id"}, "count": {"$sum": 1}}}

            ],
            {
                'allowDiskUse': 'true'
            }

        )


        response = []
        for doc in cursor:
            del doc["unique_ids"][0]
            for id in doc["unique_ids"]:
                response.append(id)

        db.coll.remove({"_id": {"$in": response}})

但是当我尝试执行此代码时,出现了类似的错误,

追溯(最近一次呼叫最近):文件“ delete_duplicate.py”,“ allowDiskUse”中的第12行:“ true” TypeError:aggregate()恰好接受2个参数(给定3个)

当我在没有allowDiskuse的小型数据集中运行代码时,它会成功删除重复项。但是当我尝试在大型数据集中运行时,会抛出类似我需要使用allowdiskuse的错误,如果我也使用过gegeet上面提到的错误我正在使用MongoDB 3.0版本。因此,请确保我的平台无法正常使用。因此,请任何人帮助我解决此问题。

海盗X
cursor = [{
    "$group": {
        "_id": {
            "Instrument Name": "$Instrument Name",
            "High": "$High",
            "Low": "$Low",
            "V": "$V",
            "Date": "$Date",
            "Close": "$Close",
            "Open": "$Open"
        },
        "unique_ids": {
            "$addToSet": "$_id"
        },
        "count": {
            "$sum": 1
        }
    }
}]

然后打电话

result = coll.aggregate(cursor, allowDiskUse=True)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查mysql数据库中的重复记录

来自分类Dev

从加权关系数据库中删除重复记录

来自分类Dev

更新记录时如何防止数据库中重复记录?

来自分类Dev

仅返回数据库中的重复记录

来自分类Dev

如何处理SQL Server数据库中的重复记录

来自分类Dev

如何删除SQL中的重复记录?

来自分类Dev

在数据库中插入ASP.NET重复记录

来自分类Dev

在存储到数据库oracle 11g中的同时获取重复记录

来自分类Dev

在数据库中插入ASP.NET重复记录

来自分类Dev

Rails嵌套的fields_for数据库中的重复记录

来自分类Dev

lastInsertId()在数据库中创建2个重复记录

来自分类Dev

从数据库表中删除重复的记录

来自分类Dev

从具有20,000条记录的网格中查找重复记录,而无需快速访问数据库

来自分类Dev

如何快速删除mysql中的重复记录

来自分类Dev

如何从对象数组中删除重复记录?

来自分类Dev

删除重复记录

来自分类Dev

如何使用linq删除重复记录?

来自分类Dev

如何从SQL Server删除重复记录?

来自分类Dev

如何使用linq删除重复记录?

来自分类Dev

删除SQL中的重复记录

来自分类Dev

删除 vCard 文件中的重复记录

来自分类Dev

如何删除数据库中的重复项

来自分类Dev

如何使用Ajax从数据库中删除记录

来自分类Dev

SQL - 针对不同的数据库服务器查询重复记录

来自分类Dev

提取数据框中的重复记录

来自分类Dev

记录未从数据库中删除

来自分类Dev

如何防止Rails中的重复记录

来自分类Dev

如何删除mongodb数据库中的特定ID?

来自分类Dev

如何删除重复记录并保留最新记录?