如何在数据库中选择频率(出现)> 1记录

时间:2015-04-06 01:06:06

标签: mongodb

我想选择频率> 1 记录。

以以下数据为例,

它应该给我一些结果,例如[{id: 146}]

因为只有 id 146才会出现多个。

我可以在mongoDB中执行此操作,谢谢

{
    id: 146,
    name: Mary
}

{
    id: 148,
    name: Jack
}

{
    id: 146,
    name: Mary
}

1 个答案:

答案 0 :(得分:1)

你应该正确解释你想要的东西。您还应该正确提供样本数据。

MongoId是一个无法重复的唯一字段,但您可以根据任何其他键找到多个文档。根据您的示例数据,您可以编写如下的查询 -

db.collection.aggregate([{$group:
{"_id":{"id":"$id","name":"$name"},
uniqueIds: { $addToSet: "$_id" }, //u can comment out this line if not required
count: { $sum: 1 }
}},
{ $match: {
count: { $gt: 1 }
}}])

这将返回所有带有count(id)大于1的文档。