如何在 mongo db 查询中查找重复记录以使用

我有以下集合,需要在 mongo 中查找重复记录,我们如何才能找到如下的一个集合样本,我们有大约 10000 多条集合记录。

/* 1 */
{
    "_id" : 1814099,
    "eventId" : "LAS012",
    "eventName" : "CustomerTab",
    "timeStamp" : ISODate("2018-12-31T20:09:09.820Z"),
    "eventMethod" : "click",
    "resourceName" : "CustomerTab",
    "targetType" : "",
    "resourseUrl" : "",
    "operationName" : "",
    "functionStatus" : "",
    "results" : "",
    "pageId" : "CustomerPage",
    "ban" : "290824901",
    "jobId" : "87377713",
    "wrid" : "87377713",
    "jobType" : "IBJ7FXXS",
    "Uid" : "sc343x",
    "techRegion" : "W",
    "mgmtReportingFunction" : "N",
    "recordPublishIndicator" : "Y",
    "__v" : 0
}
stack overflow how to find duplicate records in mongo db query to use
原文答案

答案:

作者头像

要从 db 中获取重复项,您只需要获取计数超过 1 的组,我们可以使用 $match 运算符来过滤我们的结果。在 $match 管道运算符中,我们将告诉它查看计数字段并告诉它使用表示“大于”和数字 1 的 $gt 运算符查找大于 1 的计数。这看起来像以下内容:

db.collection.aggregate([
{$group: {
    _id: {eventId: "$eventId"},
    uniqueIds: {$addToSet: "$_id"},
    count: {$sum: 1}
    }
},
{$match: { 
    count: {"$gt": 1}
    }
}
]);

我假设 eventId 是一个唯一的 id。