【ITニュース解説】Hands-On MongoDB CRUD Operations with a College Student Sche
2025年10月05日に「Dev.to」が公開したITニュース「Hands-On MongoDB CRUD Operations with a College Student Sche」について初心者にもわかりやすく解説しています。
ITニュース概要
MongoDBのCRUD操作を、学生データ管理の例で分かりやすく解説する。JSON形式のデータを「作成・読み込み・更新・削除」するための具体的なコマンドを紹介。柔軟なNoSQLデータベースの基本操作を学べる。
ITニュース解説
システムエンジニアを目指す上で、データベースの操作は避けて通れない重要なスキルの一つだ。その中でも、最近注目を集めているのがMongoDBというデータベースだ。MongoDBは、従来のデータベースとは異なる「NoSQL」というカテゴリに属し、データを柔軟に扱うことができる特徴を持つ。今回のニュース記事では、このMongoDBを使って、データの基本的な操作である「CRUD」について、具体的な学生データを例に詳しく見ていく。
CRUDとは、Create(作成)、Read(読み取り)、Update(更新)、Delete(削除)の頭文字を取った言葉で、データベースに保存されたデータに対して行う基本的な4つの操作を指す。あらゆるアプリケーションやシステムは、このCRUD操作の組み合わせによって成り立っていると言っても過言ではない。例えば、SNSで新しい投稿を作成したり(Create)、過去の投稿を閲覧したり(Read)、自分のプロフィールを更新したり(Update)、不要なメッセージを削除したり(Delete)するのも、全てこのCRUD操作に当てはまる。
MongoDBは、データを「ドキュメント」という形で保存する。このドキュメントは、JavaScriptのオブジェクトに似た「JSON(JavaScript Object Notation)」という形式で記述され、非常に人間にとっても分かりやすい構造をしている。記事では、学生の情報を管理する「students」というコレクション(従来のデータベースでいうテーブルのようなもの)を使い、具体的な操作を試している。
まず、一つ目の操作は「Create(作成)」、つまり新しいデータをデータベースに挿入することだ。記事の例では、insertManyというコマンドを使って、一度に複数の学生データをstudentsコレクションに挿入している。それぞれの学生データは、student_id(学生ID)、name(名前)、age(年齢)、department(学科)、year(学年)、cgpa(成績平均点)といった項目を持つJSON形式のドキュメントとして定義されている。例えば、最初の学生は{ "student_id": "S001", "name": "Soniya", "age": 20, "department": "CSBS", "year": 2, "cgpa": 9 }のように表現される。この形式で5人分の学生データをまとめて挿入することで、データベースに最初の情報が登録されるわけだ。
次に、「Read(読み取り)」操作について見ていこう。これは、データベースに保存されているデータを取り出して表示する操作だ。最も基本的な読み取り方法は、db.students.find().pretty();というコマンドを使うことだ。find()はstudentsコレクション内の全てのドキュメントを探し出す指示で、その後に続く.pretty()は、見やすいように整形して表示するという意味を持つ。これにより、挿入した5人分の学生データが全て一覧で表示される。特定の条件に合う学生だけを探したい場合もあるだろう。例えば、「成績平均点(CGPA)が8より大きい学生」を探すには、db.students.find({ cgpa: { $gt: 8 } }).pretty();と記述する。ここでcgpa: { $gt: 8 }という部分が検索条件であり、$gtは「greater than」(より大きい)を意味する演算子だ。同様に、「CSBS学科の学生」を探す場合は、db.students.find({ department: "CSBS" }).pretty();のように、特定のフィールドと値を直接指定する。これらの検索条件を使いこなすことで、必要な情報を素早く効率的に見つけ出すことができる。
三つ目の操作は「Update(更新)」だ。これは、既存のデータの情報を変更する操作を指す。記事では二種類の更新方法を紹介している。一つは、特定の学生の情報を更新するupdateOneだ。例えば、student_idが"S002"の学生のCGPAを8.5から8.8に更新したい場合、db.students.updateOne({ student_id: "S002" }, { $set: { cgpa: 8.8 } });と記述する。最初の波括弧{ student_id: "S002" }でどのドキュメントを対象にするかを指定し、次の波括弧{ $set: { cgpa: 8.8 } }で変更内容を指定する。$setは、指定したフィールドの値を新しい値で上書きするという意味だ。もう一つは、複数のドキュメントを一括で更新するupdateManyだ。記事の例では、「学年(year)が3の学生全員の学年を1つ増やす」という操作を行っている。これはdb.students.updateMany({ year: 3 }, { $inc: { year: 1 } });というコマンドで実現される。ここでの$incは「increment」(増加させる)を意味し、指定したフィールドの値を指定した量だけ増やすことができる。これにより、条件に合う複数の学生の学年データが自動的に更新されるため、手作業で一つずつ変更する手間が省ける。
最後の操作は「Delete(削除)」だ。これは、不要になったデータをデータベースから消去する操作を意味する。更新と同様に、単一のドキュメントを削除するdeleteOneと、複数のドキュメントを削除するdeleteManyがある。deleteOneの例として、「student_idが"S005"の学生を削除する」という操作が示されている。コマンドはdb.students.deleteOne({ student_id: "S005" });となる。検索条件{ student_id: "S005" }に一致する最初のドキュメントが削除される。deleteManyの例では、「CGPAが7.5未満の学生を全て削除する」という操作を行っている。これはdb.students.deleteMany({ cgpa: { $lt: 7.5 } });と記述する。ここでの$ltは「less than」(より小さい)を意味する演算子だ。このコマンドを実行することで、条件に合致する複数の学生データが一度にデータベースから削除される。
これらのCRUD操作は、MongoDBがJSONライクなデータ構造を柔軟に扱えるため、非常に直感的で分かりやすい。学生管理システムのようなアプリケーションでは、新入生の情報を登録し(Create)、学年ごとの学生リストを表示し(Read)、成績を更新し(Update)、卒業生や退学者の情報を削除する(Delete)といった一連の操作が日常的に行われる。MongoDBは、このようなアプリケーションのバックエンドとして、非常に強力で柔軟なデータベースソリューションを提供する。システムエンジニアを目指す皆さんにとって、このCRUD操作はデータベースを扱う上で最も基本的ながらも、非常に重要な概念だ。MongoDBのようなNoSQLデータベースの学習は、現代の多様なデータとアプリケーションに対応するための大きな一歩となるだろう。実際に手を動かしてコマンドを試すことで、理解はさらに深まるはずだ。