MongoDB Node.js ドライバーを統合する方法

Mongodb Node Js Doraibawo Tong Hesuru Fang Fa



MongoDB には、MongoDB Node.js Driver と呼ばれる公式パッケージがあり、Node.js プログラムとデータベース間の統合を可能にします。このアプリケーションを使用すると、データベース アクションの中でも特に、ドキュメントの接続、クエリ、更新、削除を行うことができます。 MongoDB Node.js ドライバーを使用するには、ノード パッケージ マネージャーである npm から mongodb パッケージをインストールする必要があります。この記事では、npm から mongodb を取得する各段階を以下に示します。

npm モジュールを使用して MongoDB ドライバーをセットアップする

MongoDB の node.js ドライバーを取得するには、まずシステム上の Node.js 用の npm モジュールを取得する必要があります。これは更新する必要があります。最新バージョンの npm をシステムにグローバルにインストールしました。 npm モジュールをインストールするためのコマンドは次のとおりです。

npm install -g npm@9.8.1

ここでは、npm モジュールがコンピューターに追加されたことがわかります。









ここで、MongoDB を Node.js ドライバーと統合する必要があるため、次のコマンドは、npm コマンドを使用して Mongodb ドライバーを取得するのに役立ちます。依存関係は、npm によって -save オプションを使用して「package.json」というファイルに保存されます。ただし、-save オプションを使用せずに MongoDB ドライバーをインストールし、それをプロジェクトの依存関係に追加すると、同じ結果が得られます。



npm install mongodb --save

次の図に示すように、MongoDB ドライバーが正常にインストールされました。





次のステップは、MongoDB プログラムを配置できる固有のディレクトリを作成することです。これを行うには、mkdir コマンドを使用してディレクトリ「NewFolder」を作成します。ディレクトリを作成するコマンドは次のとおりです。



mkdir 新しいフォルダー

ここで、その特定のディレクトリにアクセスするために、以下に示すようにパスを指定しました。

cd C:\Users\Hp\MyNodejs\NewFolder

したがって、今は前のステップで作成したディレクトリ「NewFolder」にいます。次のプロセスに進むと、「npm init -y」コマンドを実行して、ユーザー入力を必要とせずにデフォルト値で package.json ファイルを生成することで、新しい Node.js プロジェクトを迅速に初期化します。

デフォルト値を含む基本的な package.json ファイルが、以下のコマンド出力として作成されています。

例 # 1: Node.js の統合による MongoDB サーバーとの接続の確立

Node.js 内で MongoDB ドライバーを取得する最初の手順はすべて、上記のセクションで正常に完了しました。これで、MongoDB サーバーとの接続を簡単に確立できるようになりました。このために、ディレクトリ「NewFolder」内に「MongoDB.js」という名前のファイルを作成しました。接続を確立するためのスクリプトを以下に示します。

const {MongoClient} = 必要とする ( 「モンゴデータベース」 );
定数 URL = 'mongodb:// 127.0.0.1:27017 ' ;
const client = 新しい MongoClient(url);
const データベース名 = 「新しいデータベース」 ;
非同期関数 main() {
client.connect() を待ちます;
コンソール.log( 「MongoDB サーバーに正常に接続されました」 );
const db = client.db(db_name);
const コレクション = db.collection( 「ユーザー」 );
戻る '終わり。' ;
}

主要()
.then(コンソール.ログ)
.catch(コンソール.エラー)
.finally(() => client.close());

MongoDB サーバー接続を生成するために、MongoDB パッケージからクラス「MongoClient」を追加しました。次に、MongoDB サーバーの URL が定義されている変数「url」と「db_name」(この場合は localhost)を指定し、MongoDB データベースの名前「NewDatabase」を指定しました。

その後、async 関数を設定し、それを main() と呼びます。その関数 main() 内で、接続を確立するために connect() 関数を使用しました。接続が正常に確立されると、log() によってメッセージが出力されます。

接続を設定した後、コレクション「users」にアクセスします。ここでは、main 関数内でさまざまなデータベース操作を実行できます。次に、main().then(console.log).catch(console.error) を使用して main 関数が呼び出され、成功とエラーの場合を処理します。最後に、.finally() ブロックの client.close() を使用して MongoDB 接続を閉じました。

出力には、node コマンドでファイルを実行したため、MongoDB サーバーとの接続が正常に確立されたことが表示されました。

例 # 2: Node.js を使用してドキュメントを MongoDB コレクションに挿入する

前のセクションで MongoDB サーバーに接続しました。接続が確立されると、上記のプログラムで指定されたコレクションにドキュメントを挿入できます。ドキュメントをコレクション「user」に挿入する操作は、同じファイル「MongoDB.js」に追加されます。

const {MongoClient} = 必要とする ( 「モンゴデータベース」 );
定数 URL = 'mongodb:// 127.0.0.1:27017 ' ;
const client = 新しい MongoClient(url);
const データベース名 = 「新しいデータベース」 ;
非同期関数 main() {
client.connect() を待ちます;
コンソール.log( 「MongoDB サーバーに正常に接続されました」 );
const db = client.db(db_name);
const コレクション = db.collection( 「ユーザー」 );

const insertDocs =
await collection.insertMany([{ name: 「アレックス」 、 Eメール: ' ノーオープナー '>alex@example.com ' }、
{ 名前: 「アンディ」 、 Eメール: ' ノーオープナー '>andy@example.com }、
{ 名前: '彼自身' 、 Eメール: ' ノーオープナー '>sam@example.com ' }]);
コンソール.log( 「コレクションにドキュメントを挿入しました =>」 、挿入ドキュメント);
戻る '終わり。' ;
}

主要()
.then(コンソール.ログ)
.catch(コンソール.エラー)
.finally(() => client.close());

ここで、スクリプトはすべて上記と同じです。非同期関数 main() に挿入操作を挿入しただけです。変数「insertDocs」を作成し、await コマンドを使用して insertMany() 関数を呼び出しました。 insertMany() 関数では、それぞれに異なる値を持つ「name」フィールドと「email」フィールドを含む 3 つのドキュメントを指定しました。すべての文書が正しく挿入されると、ステートメントが生成されます。

出力には、ドキュメントが 3 つの一意の ID を持つコレクションに正常に挿入されたことが表示されます。

例 # 3: Node.js を使用してドキュメントをコレクションに更新する

同様に、同じファイル「MongoDB.js」に従って、MongoDB の更新操作を Node.js に適用することもできます。操作は更新操作のファイルに追加されます。この操作のプログラムを考えてみましょう。

const {MongoClient} = 必要とする ( 「モンゴデータベース」 );
定数 URL = 'mongodb:// 127.0.0.1:27017 ' ;
const client = 新しい MongoClient(url);
const データベース名 = 「新しいデータベース」 ;
非同期関数 main() {
client.connect() を待ちます;
コンソール.log( 「MongoDB サーバーに正常に接続されました」 );
const db = client.db(db_name);
const コレクション = db.collection( 「ユーザー」 );

const updateDoc = await collection.updateOne({ name: 「アンディ」 }、
{ $set: { メール: ' ノーオープナー '>andy12@example.com } });
コンソール.log( 「コレクション内のドキュメントが更新されました=>」 、updateDoc);
戻る '終わり。' ;
}

主要()
.then(コンソール.ログ)
.catch(コンソール.エラー)
.finally(() => client.close());

ここでは、$set 演算子を使用して更新操作が定義されている変数を「updateDocs」と呼びます。 updateOne() メソッドの定義では、更新する必要があるドキュメントは 1 つだけであると規定されています。 MongoDB の updateOne() メソッドでは、最初のステートメントとして name フィールドに値を指定し、次に $set 演算子を 2 番目のステートメントに指定します。ここで、それに応じて新しいメールを更新するために「email」フィールドが指定されています。 。

Node.js を使用して、更新対象のドキュメントが照合および変更された出力が表示されます。

例 # 4: Node.js を使用して MongoDB コレクションからドキュメントを削除する

次に、Node.js を使用して MongoDB の削除操作を適用しました。この操作は、同様のファイル「MongoDB.js」で提供されます。

const {MongoClient} = 必要とする ( 「モンゴデータベース」 );
定数 URL = 'mongodb:// 127.0.0.1:27017 ' ;
const client = 新しい MongoClient(url);
const データベース名 = 「新しいデータベース」 ;
非同期関数 main() {
client.connect() を待ちます;
コンソール.log( 「MongoDB サーバーに正常に接続されました」 );
const db = client.db(db_name);
const コレクション = db.collection( 「ユーザー」 );

const deleteDoc = await collection.deleteOne({ 名前: 「アンディ」 });
コンソール.log( 「ドキュメントが削除されました=>」 、削除ドキュメント);
戻る '終わり。' ;
}

主要()
.then(コンソール.ログ)
.catch(コンソール.エラー)
.finally(() => client.close());

ここでは、同じコレクション「users」からドキュメントが削除される新しい変数「deleteDoc」を定義しました。 deleteOne() メソッドは、「deleteDoc」変数内で提供され、特定のドキュメント (フィールド「name」に値「Andy」が格納されているドキュメント) のみを削除します。ドキュメントがコレクションから削除されると、Node.js ファイルも削除メッセージを生成します。

予想どおり、ドキュメントは MongoDB コレクション「users」から正常に削除されました。

結論

MongoDB Node.js ドライバーを使用して MongoDB データベースへの接続を確立し、コレクションにアクセスする方法を示しました。 MongoDB との接続に成功した後、MongoDB 操作を実行するための追加の操作コードを main 関数内に組み込みました。