mongodb跨文档查找数组中的重复项

Bro*_*ock 4 arrays email-address duplicates mongodb

在文档中包含一系列电子邮件。我们如何在同一集合中找到至少共享一封电子邮件的另一个文档?

本质上,我们有一个联系人集合,每个联系人文档都有一个 emailAddresses[] 数组。我们希望确保没有两个联系人文档与另一个文档具有共同的电子邮件,但我们无法找到发生这种情况的位置。

Par*_*tte 6

db.collection.aggregate([
{"$unwind" : "$emails"},
{$group  : {"_id" : "$emails" , "count" :{"$sum" : 1} }},
{"$match" : {"count" : {"$gt" : 1}}}
])
Run Code Online (Sandbox Code Playgroud)

这将导致电子邮件重复