Node.jsからMongoDBに接続する方法!mongodb.connect()の使い方を徹底解説
Node.jsとMongoDBを接続するには
Node.jsアプリケーションからMongoDBサーバーに接続する際は、公式の「mongodb」ドライバ(モジュール)が提供する connect() メソッドを使用します。このメソッドは非同期で動作し、接続の成否はコールバック関数またはPromiseを通じて受け取ることができます。
mongodb.connect() の構文
mongodb.connect(path[, callback])
パラメータ
path – 接続先MongoDBサーバーのパスです。ホスト名とポート番号を含むURI形式で指定します。
callback – 接続処理の完了時に呼び出される関数です。エラーが発生した場合は、第一引数にエラーオブジェクトが渡されます。
MongoDBドライバのインストールと準備
アプリケーションとMongoDBを接続する前に、まず開発環境を整えておきましょう。
1. npmでドライバをインストールする
以下のコマンドを実行して、npmからmongodbドライバをプロジェクトに追加します。
npm install mongodb --save
2. ローカルでMongoDBサーバーを起動する
次に、以下のコマンドでローカル環境のMongoDBサーバーを起動します。データの保存先ディレクトリと、バインドするIPアドレス(127.0.0.1=自分自身のみ)を指定しています。
mongod --dbpath=data --bind_ip 127.0.0.1
3. 接続用スクリプトを作成する
「MongodbConnect.js」というファイルを作成し、後述のサンプルコードを貼り付けてください。
その後、以下のコマンドでスクリプトを実行します。
node MongodbConnect.js
接続コードのサンプル
// 必要なMongoDBモジュールを読み込む
const MongoClient = require("mongodb");
// サーバーのURL(ポート27017番)
const url = 'mongodb://localhost:27017/';
// 使用するデータベース名
const dbname = "Employee";
// サーバーへ接続
MongoClient.connect(url, (err, client) => {
if (!err) {
console.log("サーバーとの接続に成功しました");
// データベースハンドルを取得する場合
// const db = client.db(dbname);
} else {
console.log("接続中にエラーが発生しました");
}
});
実行結果
C:\Users\tutorialsPoint\> node MongodbConnect.js
(node:7016) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
サーバーとの接続に成功しました
DeprecationWarningについて
実行時に表示される「DeprecationWarning」は、旧バージョンのドライバを使用した際に出る警告メッセージです。{ useUnifiedTopology: true } オプションを MongoClient に渡すことで解消できます。
MongoClient.connect(url, { useUnifiedTopology: true }, (err, client) => {
// ...
});
なお、ドライバのバージョン4以降では新しいサーバー検出エンジンがデフォルトとなっているため、この警告は表示されません。また、近年のバージョンではコールバックよりもPromiseやasync/awaitを使った書き方が推奨されています。
まとめ
mongodb.connect() メソッドにサーバーのURIを渡すだけで、Node.jsアプリケーションからMongoDBへ簡単に接続できます。まずはローカル環境でmongodを起動し、本記事のサンプルコードを実際に動かしてみてください。
-
MongoDBで条件付きの文字列連結を行う方法($condと$concatの使い方)
MongoDBで条件付きの文字列連結を実現する方法 MongoDBでは、$cond演算子の中で$concatを組み合わせることで、条件に基づいた文字列の連結とドキュメントのフィルタリングが可能です。本記事では、実際のコード例を通じて、その実装手順をわかりやすく解説します。 サンプルコレクションの作成 まず、ドキュメントを格納するコレクションを作成します。insertOne()メソッドを使って、3件のドキュメントを挿入してみましょう。 > db.demo745.insertOne({Value1:100,Value2:100}); { acknowledged : true,
-
MongoDBの$push演算子を使って配列に要素を追加する方法
MongoDBの$push演算子とはMongoDBの$push演算子は、ドキュメント内の配列フィールドに対して新しい要素を追加するための更新演算子です。既存の配列の末尾に値を追加できるため、リスト形式のデータを扱う際に非常に便利です。この記事では、実際のコード例を通して、$push演算子の基本的な使い方を解説します。1. コレクションとドキュメントを作成するまず、insertOne()メソッドを使用して、コレクションにドキュメントを挿入します。ここでは「Subjects」という配列フィールドを持つ2つのドキュメントを作成します。> db.demo738.insertOne({Subjec