MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

すべてのテストの合計平均よりも1スコア少ないテストの学生の名前を取得するための集計フレームワーク


このために、aggregate()を使用できます。テストレコードを「Value1」、「Value2」などと見なしました。ドキュメントを使用してコレクションを作成しましょう-

> db.demo432.insertOne(
...    {
...       "_id" : 101,
...       "Name" : "David",
...       "Value1" : 67,
...       "Value2" : 87,
...       "Value3" : 78
...    }
... )
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo432.insertOne(
...    {
...       "_id" : 102,
...       "Name" : "Sam",
...       "Value1" : 98,
...       "Value2" : 45,
...       "Value3" : 90
...    }
... )
{ "acknowledged" : true, "insertedId" : 102 }

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo432.find();

これにより、次の出力が生成されます-

{ "_id" : 101, "Name" : "David", "Value1" : 67, "Value2" : 87, "Value3" : 78 }
{ "_id" : 102, "Name" : "Sam", "Value1" : 98, "Value2" : 45, "Value3" : 90 }

以下は、テスト1のスコアがすべてのテストの平均よりも小さい生徒の名前を取得するためのクエリです-

> db.demo432.aggregate([{
...    $project: {
...       Name: '$Name',
...       Value1: '$Value1',
...       average: {
...          $avg: ['$Value1', '$Value2', '$Value3']
...          }
...       }
...    },
...    {
...    $group: {
...       _id: null,
...       NameValue1: {
...          $push: {
...             "Name": "$Name",
...             "Value1": "$Value1"
...          }
...       },
...       totalAverage: {
...          $avg: '$average'
...          }
...       }
...    },
...    { $project:
...    { lessthanAverageNames:
...    {
...       $map:
...       {
...          input: {
...             $filter: {
...                input: "$NameValue1",
...                as: "out",
...                cond: {
...                   $lt: ["$$out.Value1", "$totalAverage"]
...                   }
...                }
...             },
...             as: "o",
...             in: "$$o.Name"
...             }
...          }
...       }
...    }
... ]);

これにより、次の出力が生成されます-

{ "_id" : null, "lessthanAverageNames" : [ "David" ] }

  1. 30ドル未満でAからZのMicrosoftOfficeバンドルですべてを実行

    オフィスで使用しているプログラムを最大限に活用したいとお考えですか?もしそうなら、あなたは間違いなくA to ZMicrosoftOfficeバンドルをチェックしたいと思うでしょう。 Excel、Outlook、Access、PowerPoint、Wordなどの使い方を学びます。 このバンドルには、次の8つのコースが含まれています。 Power BI Essentials ビジネスインテリジェンスツールは、かつては高価で、過度に技術的であり、ITスペシャリスト向けに設計されていました。ただし、このコースでは、Power BIユーザーが企業情報を操作し、必要なレポートと情報を抽出する方法

  2. 三相パターンでより良いテストを書く

    (これはPracticing Railsからの短い抜粋です。ここでサインアップして最初の章を無料で入手してください!) つまり、あなたは新しいアプリに取り組んでおり、Railsはあなたのためにテストを生成しました: test / models / bug_test.rb require test_helper class BugTest < ActiveSupport::TestCase # test the truth do # assert true # end end コメントを外して名前を付ければ、テストを書く準備ができていますよね?しかし、それでは