如何选择频率(发生)>数据库中的1条记录
我想选择频率> 1记录。如何选择频率(发生)>数据库中的1条记录
看看下面的数据,例如,
应该给我的结果一样,[{id: 146}]
因为只有ID 146出现一次以上。
何wcould我在MongoDB中做到这一点,得益于
{
id: 146,
name: Mary
}
{
id: 148,
name: Jack
}
{
id: 146,
name: Mary
}
你应该正确你想要什么解释。你也应该正确提供样本数据。
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的所有文档。
嗨我更新了我的问题,我想选择频率> 1条记录 – user3675188 2015-04-06 09:04:25
@ user3675188更新了我的答案。你在找吗?如果您不需要,您可以删除uniqueIds字段。您也可以将数据分组在其他键上。 – Vishwas 2015-04-06 10:25:26
非常感谢。 – user3675188 2015-04-06 14:18:46
您是否想要获取嵌入文档__(只有id字段)的_array名称? – 2015-04-06 08:23:11
可能的重复[在关键字段中查找MongoDB集合中的所有重复文档](http://stackoverflow.com/questions/9491920/find-all-duplicate-documents-in-a-mongodb-collection-by-a关键字段) – Yogesh 2015-04-06 11:17:46