成績優秀者トラッカー

MongoDBBeginner
オンラインで実践に進む

はじめに

あなたは、ある大学の「成績優秀者(Honor Roll)」データベースを管理するために採用されました。この大学では、GPA(平均評定)に基づいて成績優秀な学生を追跡しています。あなたの任務は、データベースに学生データを登録し、GPA が 3.7 を超える成績優秀者を特定することです。特定した学生のデータは、honor_roll という別のコレクションに保存します。

このチャレンジでは、データの挿入、特定のレコードのクエリ(検索)、およびクエリ結果に基づいた新しいコレクションの作成能力が試されます。

成績優秀者データベースの構築とクエリ

students コレクションに学生データを挿入し、成績上位の学生を抽出して honor_roll コレクションを作成します。

タスク

  1. 以下の学生レコードを students コレクションに挿入してください。
[
  { "name": "Anna Lee", "age": 19, "major": "Mathematics", "gpa": 3.9 },
  { "name": "Sam Green", "age": 21, "major": "History", "gpa": 3.4 },
  { "name": "Chris Black", "age": 20, "major": "Physics", "gpa": 3.8 },
  { "name": "Jamie White", "age": 22, "major": "Literature", "gpa": 3.5 }
]
  1. students コレクションから、gpa が 3.7 より大きい学生を検索してください。
  2. クエリの結果を honor_roll という名前の新しいコレクションに保存してください。

要件

  • university データベース内のみで操作を行ってください。
  • honor_roll コレクションには、GPA が 3.7 を超える学生のみを含める必要があります。
  • students コレクションは、すべてのレコードが保持されたままの状態(変更なし)である必要があります。

ヒント

  • クエリの結果を const を使って変数に格納すると、後でそのデータを参照しやすくなります。
  • .toArray() メソッドを使用すると、クエリ結果を配列に変換して後続の処理に利用できます。

タスク完了後、honor_roll コレクションの内容は以下のようになります。

[
  { "_id": ObjectId("..."), "name": "Anna Lee", "age": 19, "major": "Mathematics", "gpa": 3.9 },
  { "_id": ObjectId("..."), "name": "Chris Black", "age": 20, "major": "Physics", "gpa": 3.8 }
]

また、students コレクションには引き続き 4 つのレコードすべてが含まれている必要があります。

[
  { "_id": ObjectId("..."), "name": "Anna Lee", "age": 19, "major": "Mathematics", "gpa": 3.9 },
  { "_id": ObjectId("..."), "name": "Sam Green", "age": 21, "major": "History", "gpa": 3.4 },
  { "_id": ObjectId("..."), "name": "Chris Black", "age": 20, "major": "Physics", "gpa": 3.8 },
  { "_id": ObjectId("..."), "name": "Jamie White", "age": 22, "major": "Literature", "gpa": 3.5 }
]

まとめ

このチャレンジでは、大学のデータベース管理者として成績優秀な学生を特定する業務を行いました。students コレクションへのデータ挿入、GPA 3.7 超の学生を抽出するクエリの実行、そしてその結果を新しい honor_roll コレクションへ保存する一連の操作を完了しました。この実践的な演習を通じて、MongoDB におけるデータの挿入、クエリ、およびコレクション管理のコマンドへの理解を深めることができました。

✨ 解答を確認して練習