如何在MongoDB Compass社区中使用MongoDB聚合删除重复项

如何在MongoDB Compass社区中使用MongoDB聚合删除重复项,mongodb,duplicates,aggregation-framework,Mongodb,Duplicates,Aggregation Framework,我不知何故创建了数据库中每个条目的副本。目前,共有176039份文件,其中一半是副本。每个文档的结构都是这样的 _id : 5b41d9ccf10fcf0014fe8917 originName : "Hartsfield Jackson Atlanta International Airport" destinationName : "Antigua" totalDuration : 337 在聚合选项卡下的MongoDB Compass社区应用程序中,我能够使用此管道找到重复的应用程序 [

我不知何故创建了数据库中每个条目的副本。目前,共有176039份文件,其中一半是副本。每个文档的结构都是这样的

_id : 5b41d9ccf10fcf0014fe8917
originName : "Hartsfield Jackson Atlanta International Airport"
destinationName : "Antigua"
totalDuration : 337
在聚合选项卡下的MongoDB Compass社区应用程序中,我能够使用此管道找到重复的应用程序

[
    {$group: {
        _id: {originName: "$originName", destinationName: "$destinationName"},
        count: {$sum: 1}}},
    {$match: {count: {"$gt": 1}}}
]
我不知道该如何前进并在此时删除重复项。我假设它与
$out
有关

编辑:直到现在我才注意到,每个双精度上的totalDuration值实际上是不同的。

添加

{$project:{_id:0, "originName":"$_id.originName", "destinationName":"$_id.destinationName"}},
{ $out : collectionname } 
这将用聚合管道中的文档替换当前集合中的文档。如果需要集合中的totalDuration,则在运行管道之前,在group和project阶段中添加该字段

{$project:{_id:0, "originName":"$_id.originName", "destinationName":"$_id.destinationName"}},
{ $out : collectionname } 

这将用聚合管道中的文档替换当前集合中的文档。如果需要集合中的totalDuration,则在运行管道之前,在group和project阶段添加该字段

add
{$project:{{id:0,“originName”:“$\id.originName”,“destinationName”:“$\U id.destinationName”},{$out:collectionname}
。这将用聚合管道中的文档替换当前集合中的文档。如果您需要集合中的totalDuration,那么在运行管道之前,在group和project阶段中添加该字段。这完全符合预期。你能把这变成一个答案,这样我就可以投票了吗?此外,我还对问题进行了编辑。由于某些原因,totalDuration值实际上是不同的。如果将totalDuration设置为$group,则$match将找不到任何内容。是否要将totalDuration保留在输出中?如果是,您想要两者吗?是的,但只有一个和第一个,尽管哪一个并不重要。在组阶段添加
totalDuration:{$first:$totalDuration”}
,并在$project阶段中包含为
totalDuration:1
Add
{$project:{id:0,“originName:“$\id.originName”,“destinationName:“$\id.destinationName”},{$out:collectionname}
。这将用聚合管道中的文档替换当前集合中的文档。如果您需要集合中的totalDuration,请在运行管道之前在group和project stage中添加该字段。这完全符合预期。您能将其转换为答案以便我可以对其进行投票吗?此外,我还对q进行了编辑uestion。由于某些原因,totalDuration值实际上是不同的。如果我将totalDuration设置为$group,则$match将找不到任何内容。是否要在输出中保留totalDuration?如果是,是否两者都要?是,但只有一个和第一个,尽管哪一个无关紧要。添加
totalDuration:{$first:$totalDuration”}
在组阶段中,并在$project阶段中包含为
totalDuration:1