標籤:最小 project 尋找 gate 需要 name 使用 假設 它的
假設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根據子項中的指標尋找最小或最大值