はじめに
あなたは、ある大学の「成績優秀者(Honor Roll)」データベースを管理するために採用されました。この大学では、GPA(平均評定)に基づいて成績優秀な学生を追跡しています。あなたの任務は、データベースに学生データを登録し、GPA が 3.7 を超える成績優秀者を特定することです。特定した学生のデータは、honor_roll という別のコレクションに保存します。
このチャレンジでは、データの挿入、特定のレコードのクエリ(検索)、およびクエリ結果に基づいた新しいコレクションの作成能力が試されます。
成績優秀者データベースの構築とクエリ
students コレクションに学生データを挿入し、成績上位の学生を抽出して honor_roll コレクションを作成します。
タスク
- 以下の学生レコードを
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 }
]
studentsコレクションから、gpaが 3.7 より大きい学生を検索してください。- クエリの結果を
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 におけるデータの挿入、クエリ、およびコレクション管理のコマンドへの理解を深めることができました。

