Web制作、Web開発の歩き方

サーバー、データベース、インフラに関するトピックス

■第17話:MongoDBの基本操作 - CRUDをマスターする

(最終更新日:2023.11.05)

NoSQLのイメージ
この記事は6分で読めます!
(絵が小さい場合はスマホを横に)

「CRUDを使いこなそう!」

CRUDはデータベースにおける4つの基本的な操作である。 データのライフサイクルに関わり、C(Create)は新たなドキュメント(データ)をコレクションに挿入することを言う。 他にも、R(Read)はデータの読み取り、U(Update)はデータの更新、D(Delete)はデータの削除を意味する。 今回は、MongoDBにおけるCRUD操作について、具体的なコマンドを通して解説する。


1.Create操作

Create操作はデータベースに新しいデータを追加するプロセスだ。MongoDBでは、この操作はドキュメントの追加として実行される。 単一のドキュメントをコレクションに追加するには、insertOne() メソッドを使用する。以下はその基本的な構文である。 Windows版のMongoDBターミナル上で、下記のようにinsertOneというクエリを実行すると、ドキュメントが作られる。 usersコレクションがない場合は、自動的にusersコレクションが作成される。

MongoDBのCreate操作

MongoDBのCreate操作

複数ドキュメントを追加するには、insertMany() メソッドを使用する。以下はその基本的な構文である。 配列を使って一気に3つの新しいドキュメントを追加した。以上がMongoDBのCreate操作になる。

MongoDBの複数追加

MongoDBの複数追加

2.Read操作

Read操作はデータベースからデータを取得するプロセスである。 MongoDBでは、ドキュメントを検索してデータを読み取る。 コレクション内のドキュメントを検索するには、find()メソッドを用いる。基本的な構文は以下の通りになる。 statusがactiveに相当する3つのドキュメントが表示されている。

MongoDBのRead操作

MongoDBのRead操作

このコマンドは、ageが24より小さく、statusがactiveであるドキュメントを検索します。 $andを用いることでANDの論理演算子を使うことができ、$ltでより小さいという比較演算子を使うことができる。 24歳未満でactiveな1つのドキュメントがヒットしている。以上がMongoDBのRead操作になる。

Readの複雑な操作

Readの複雑な操作


3.Update操作

Update操作はデータベース内の既存データを変更するプロセスだ。MongoDBでは、ドキュメントのフィールドを更新することでこれを実現する。 単一のドキュメントを更新するには、updateOne() メソッドを使用する。このメソッドでは、最初にマッチするドキュメントが更新される。 以下はその基本的な構文になる。 nameにAliceを指定し、そのstatusをinactiveに変更した。

MongoDBのUpdate操作

MongoDBのUpdate操作

複数のドキュメントを一度に更新するには、updateMany() メソッドを使用する。以下はその基本的な構文になる。 このコマンドは、statusがactiveのものを検索し、それらを全てinactiveに更新する。

複数Update操作

複数Update操作

Updateには、他にも$incを使って値を1増加させたり、配列に要素を追加する命令もある。 必要になったら、その都度調べて実行してみよう。


4.Delete操作

Delete操作はデータベースからデータを削除するプロセスだ。MongoDBでは、ドキュメントを削除することでこれを実現する。 単一のドキュメントを削除するには、deleteOne() メソッドを使用する。 このメソッドは、条件に最初に一致した単一のドキュメントを削除する。以下はその基本的な構文である。 先ほどまであった、Bobのドキュメントがなくなっていることが分かると思う。

MongoDBのDelete操作

MongoDBのDelete操作

複数のドキュメントを削除するには、deleteMany() メソッドを使用する。以下はその基本的な構文である。 正規表現を用いて、名前でCが付く人(大文字、小文字区別無く)を削除する条件にしているので、 AliceとCharlieが削除対象になる。よって、コレクション内にはJohn Doeだけが残る。

複数Delete操作

複数Delete操作


5.まとめ

今回、MongoDBのCRUDを紹介した。 CRUDはデータベース操作の基本であり、絶対に抑えておきたい部分だ。

実際にWebアプリケーションで使う場合、Djangoなどのフレームワークと合わせて使うことになる。 その際にORMを用いることもできるが、 複雑な操作を行う場合は、pymongoをインストールして今回紹介したCRUD操作を直接行う必要も出てくる。 また、サーバー上でバッチ処理を行う場合も、直接CRUD操作する機会は出てくるだろう。 クエリはデーターベースの基本となる。ある程度は使えるようにしておこう。


▼参考図書、サイト

   MongoDB  MongoDB公式サイト