Mongo - 查找具有相同数据的记录,无论情况如何

时间:2014-07-09 11:24:52

标签: sql mongodb database nosql

我有一个有电子邮件字段的用户集合。我对电子邮件有一个独特的限制。我刚刚发现我的用户能够输入以下两个不同情况的电子邮件

hello.java@xxx.com
HELLO.JAVA@XXX.COM

我想查询我的集合,以获取有上述问题的数据库中可能有多少条记录。

请帮我解决这个问题

我可以{"email":/hello.java/}但如果我知道这封电子邮件是两次输入的电子邮件,那么这是可能的。现在问题是我想知道哪些电子邮件都有冗余条目。

1 个答案:

答案 0 :(得分:0)

您可以使用aggregate获取重复电子邮件列表:

db.test.aggregate([
    // Project the lower-cased version of each doc's email field
    {$project: {email: {$toLower: '$email'}}},
    // Group them by email and get a count of each
    {$group: {_id: '$email', count: {$sum: 1}}},
    // Include the ones with a count > 1
    {$match: {count: {$gt: 1}}}
])