[英]How do I get a value from a field that is least common in database?
在MongoDB中,我想获取出现次数最少的字段的值。
示例 1:如果我有一个名为version
的字段,则 20 个文档/条目使用版本 2,30 个使用版本 3,5 个使用版本 1。
我想获得最少使用的版本。 因此,对于示例 1,它应该返回版本 1。
示例 2:30 个文档/条目使用版本 1.0.5,10 个使用 1.0.2,7 个使用 1.0.8,11 个使用 1.0.1
在此示例中,它应该返回 1.0.8,因为它在文档中出现了 7 次。
我怎么能做这样的事情?
我希望这是有道理的。
哦,忘了说了,有时候版本前面会有文字。 所以我只需要按数字排序。 某些版本可能有“alpha 1.0.8”之类的东西。 我只需要得到数字。
简单的 $group->$sort->$limit 可以完成任务:
db.collection.aggregate([
{
$group: {
_id: "$version",
occurance: {
$sum: 1
}
}
},
{
$sort: {
occurance: 1
}
},
{
$limit: 1
}
])
解释:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.