Node.js によるデータベース操作
1. Node.js データベース操作の準備
本チュートリアルでは、MongoDB Atlas データベースを使用します。まだアカウントを持っていない方は、 https://www.mongodb.com/cloud/atlas で無料アカウントを作成してください。
また、「アグリゲーション入門」セクションでロードしたサンプルデータセットの中の sample_mflix データベースを使用していきます。
2. MongoDB Node.js ドライバのインストール
Node.js プロジェクトで MongoDB を利用するには、まず mongodb パッケージをインストールする必要があります。
ターミナルで以下のコマンドを実行してインストールしてください。
npm install mongodbインストールが完了したら、このパッケージを使ってデータベースへの接続ロジックを実装できます。
プロジェクトディレクトリに index.js ファイルを作成し、以下のコードを記述しましょう。
index.js
const { MongoClient } = require('mongodb');3. コネクションストリングの取得
MongoDB Atlas データベースに接続するには、Atlas のダッシュボードからコネクションストリング(接続文字列)を取得する必要があります。
- Database 画面に移動し、対象の Cluster にある CONNECT ボタンをクリックします。
- Connect your application を選択し、表示されたコネクションストリングをコピーします。
例:
mongodb+srv://<username>:<password>@<cluster.string>.mongodb.net/myFirstDatabase?retryWrites=true&w=majority※ <username>、<password>、および <cluster.string> は、自身で設定した認証情報とクラスターの識別子に置き換える必要があります。
4. MongoDB への接続実装
それでは、index.js ファイルの内容を拡張して、実際の接続処理を記述してみましょう。
index.js
const { MongoClient } = require('mongodb');
// あなたのコネクションストリングに置き換えてください
const uri = "<Your Connection String>";
const client = new MongoClient(uri);
async function run() {
try {
// データベースに接続
await client.connect();
// データベースとコレクションを指定
const db = client.db('sample_mflix');
const collection = db.collection('movies');
// コレクション内の最初のドキュメントを検索
const first = await collection.findOne();
console.log(first);
} finally {
// 処理完了後、またはエラー発生時にデータベース接続をクローズする
await client.close();
}
}
run().catch(console.error);このファイルをターミナルで実行します。
node index.jsコンソールに最初のドキュメントが出力されれば、接続成功です!
5. CRUD とドキュメントアグリゲーション
これまで mongosh で行ってきた操作と同様に、Node.js の言語ドライバを使用して、データベース内のドキュメントに対して作成(Create)、読み取り(Read)、更新(Update)、削除(Delete)、そしてアグリゲーション(集計)を実行できます。
先ほどのサンプルコードの collection.findOne() の部分を、以下のメソッドに書き換えることで、様々な操作が可能です。
find()insertOne()insertMany()updateOne()updateMany()deleteOne()deleteMany()aggregate()
実際にいくつかのメソッドを試して、Node.js からの柔軟なデータ操作を体感してみてください。フルスタックエンジニアとして、これらの非同期操作をマスターすることは非常に強力な武器になります。