mongodb根据子项中的指标查找最小或最大值

Posted 青冥绿水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb根据子项中的指标查找最小或最大值相关的知识,希望对你有一定的参考价值。

假设students集合中有这样的数据:

{
        "_id" : 1,
        "name" : "Aurelia Menendez",
        "scores" : [
                {
                        "type" : "exam",
                        "score" : 60.06045071030959
                },
                {
                        "type" : "quiz",
                        "score" : 52.79790691903873
                },
                {
                        "type" : "homework",
                        "score" : 71.76133439165544
                },
                {
                        "type" : "homework",
                        "score" : 34.85718117893772
                }
        ]
},
{
        "_id" : 3,
        "name" : "Bao Ziglar",
        "scores" : [
                {
                        "type" : "exam",
                        "score" : 71.64343899778332
                },
                {
                        "type" : "quiz",
                        "score" : 24.80221293650313
                },
                {
                        "type" : "homework",
                        "score" : 1.694720653897219
                },
                {
                        "type" : "homework",
                        "score" : 42.26147058804812
                }
        ]
},
{
        "_id" : 2,
        "name" : "Corliss Zuk",
        "scores" : [
                {
                        "type" : "exam",
                        "score" : 67.03077096065002
                },
                {
                        "type" : "quiz",
                        "score" : 6.301851677835235
                },
                {
                        "type" : "homework",
                        "score" : 20.18160621941858
                },
                {
                        "type" : "homework",
                        "score" : 66.28344683278382
                }
        ]
}

需要找出每个学生成绩最小值,可使用如下语句:

db.students.aggregate([{$project: {minScore: {$min: "$scores.score"}}}])

语句里面的minScore等于是一个别名,可以使用其它的。结果如下:

{ "_id" : 1, "minScore" : 34.85718117893772 }
{ "_id" : 3, "minScore" : 1.694720653897219 }
{ "_id" : 2, "minScore" : 6.301851677835235 }
{ "_id" : 4, "minScore" : 19.21886443577987 }
{ "_id" : 5, "minScore" : 10.53058536508186 }
{ "_id" : 7, "minScore" : 42.48780666956811 }
{ "_id" : 6, "minScore" : 16.58341639738951 }
{ "_id" : 8, "minScore" : 14.63969941335069 }
{ "_id" : 9, "minScore" : 12.47568017314781 }
{ "_id" : 0, "minScore" : 1.463179736705023 }
{ "_id" : 12, "minScore" : 14.78936520432093 }
{ "_id" : 13, "minScore" : 78.18795058912879 }
{ "_id" : 14, "minScore" : 13.66179556675781 }
{ "_id" : 11, "minScore" : 15.81264595052612 }
{ "_id" : 16, "minScore" : 7.772386442858281 }
{ "_id" : 15, "minScore" : 3.311794422000724 }
{ "_id" : 18, "minScore" : 62.12870233109035 }
{ "_id" : 17, "minScore" : 31.15090466987088 }
{ "_id" : 10, "minScore" : 19.31113429145131 }
{ "_id" : 19, "minScore" : 0.6578497966368002 }

以上是关于mongodb根据子项中的指标查找最小或最大值的主要内容,如果未能解决你的问题,请参考以下文章

查找堆栈中的最大值和最小值

在一个语句中查找无序数组中的最大(或最小)元素,同时保持顺序[重复]

R语言使用Which.max和Which.min函数定位数据对象中的第一个最大值或最小值实战:使用which.max函数查找第一个最大值的索引使用which.min函数查找第一个最小值的索引

查找数组中的最大值(最小值)及相对应的下标

如何查找excel一行中最小值

C语言丨如何查找数组(序列)中的最大值或者最小值?