Node.js MongoDB 例を含むチュートリアル
現代のウェブアプリケーションのほとんどすべては、バックエンドに何らかのデータストレージシステムを備えています。たとえば、ウェブショップの場合を考えてみましょう。ping アプリケーションでは、商品の価格などのデータがデータベースに保存されます。
Node js フレームワークは、両方のリレーショナル (たとえば、 Oracle および MS SQL Server) および非リレーショナル データベース (たとえば、 MongoDB)。このチュートリアルでは、Node.js アプリケーション内からデータベースを使用する方法を見ていきます。
Node.js および NoSQL データベース
長年にわたり、次のような NoSQL データベース MongoDB および MySQL データを保存するデータベースとして非常に普及しています。これらのデータベースがあらゆるタイプのコンテンツ、特にあらゆる形式で保存できることが、これらのデータベースを非常に有名にしている理由です。
Node.js には両方で動作する機能があります。 MySQL and MongoDB データベースとして。これらのデータベースのいずれかを使用するには、Node パッケージ マネージャーを使用して必要なモジュールをダウンロードして使用する必要があります。
『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する MySQL必要なモジュールは「mysql」と呼ばれ、 MongoDB インストールが必要なモジュールは「Mongoose」です。
これらのモジュールを使用すると、Node.jsで次の操作を実行できます。
- 接続プールの管理 – ここで接続プールの数を指定できます。 MySQL Node.js によって維持および保存されるデータベース接続。
- データベースへの接続を作成して閉じます。 どちらの場合も、「作成」接続メソッドと「閉じる」接続メソッドが実行されるたびに呼び出すことができるコールバック関数を提供できます。
- クエリを実行してそれぞれのデータベースからデータを取得し、データを取得できます。
- データの挿入、削除、更新などのデータ操作も、これらのモジュールを使用して実行できます。
残りのトピックについては、どのように連携できるかを見ていきます。 MongoDB 内のデータベース Node.js.
使い方 MongoDB とNode.js
前のトピックで説明したように、 MongoDB は、Node.js とともに使用される最も人気のあるデータベースの 1 つです。
この章では、次のことを見ていきます。
との接続を確立する方法 MongoDB データベース
データベースからデータを読み込む、レコードを挿入、削除、更新するといった通常の操作をどのように実行できるか MongoDB データベース。
この章では、以下のものがあると仮定します。 MongoDB データが所定の位置にあります。
データベース名: EmployeeDB
コレクション名: 従業員
Documents
{
{Employeeid : 1, Employee Name : Guru99},
{Employeeid : 2, Employee Name : Joe},
{Employeeid : 3, Employee Name : Martin},
}
- NPM モジュールのインストール
Node アプリケーション内から Mongo にアクセスするにはドライバーが必要です。利用可能な Mongo ドライバーは多数ありますが、 MongoDB 最も人気のあるものの一つです。をインストールするには、 MongoDB モジュールで、以下のコマンドを実行します
npm で MongoDB をインストールします
- への接続の作成と終了 MongoDB データベース。 以下のコード スニペットは、への接続を作成および閉じる方法を示しています。 MongoDB データベース。
Code 説明:
- 最初のステップは、mongoose モジュールをインクルードすることです。これは、require 関数を通じて実行されます。 このモジュールを配置したら、このモジュールで利用可能な必要な関数を使用してデータベースへの接続を作成できます。
- 次に、データベースへの接続文字列を指定します。 接続文字列には、渡される 3 つのキー値があります。
- 1 つ目は 'mongodb' で、mongoDB データベースに接続することを示します。
- 次は「localhost」です。これは、ローカル マシン上のデータベースに接続していることを意味します。
- 次は「EmployeeDB」です。これは、データベースで定義されているデータベースの名前です。 MongoDB データベース。
- 次のステップは、実際にデータベースに接続することです。connect 関数は URL を受け取り、コールバック関数を指定する機能があります。これは、データベースへの接続が開かれたときに呼び出されます。これにより、データベース接続が成功したかどうかを知ることができます。
- この関数では、接続が正常に作成されたことを示すために、文字列「接続が確立されました」をコンソールに書き込みます。
- 最後に、db.close ステートメントを使用して接続を閉じます。
上記のコードが正しく実行されると、以下に示すように「Connected」という文字列がコンソールに書き込まれます。
- データのクエリを実行する MongoDB データベース –を使用して MongoDB ドライバーからデータをフェッチすることもできます MongoDB 以下のセクションでは、ドライバーを使用して従業員コレクションからすべてのドキュメントを取得する方法を示します。 EmployeeDB データベースにあります。 これは私たちのコレクションです MongoDB 従業員関連のすべてのドキュメントが含まれるデータベース。各ドキュメントには、ドキュメントの値を定義するオブジェクト ID、従業員名、および従業員 ID があります。
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
var cursor = db.collection('Employee').find();
cursor.each(function(err, doc) {
console.log(doc);
});
});
Code 説明:
- 最初のステップでは、MongoDb コレクションから取得されたレコードを指すカーソル (カーソルとは、データベースから取得されたさまざまなレコードを指すポインタです。カーソルは、データベース内のさまざまなレコードを反復処理するために使用されます。ここでは、データベースから取得されたレコードへのポインタを格納するために使用される cursor という変数名を定義します) を作成します。また、レコードを取得するコレクション 'Employee' を指定する機能もあります。find() 関数は、すべてのドキュメントを取得することを指定するために使用されます。 MongoDB コレクション。
- ここでカーソルを反復処理し、カーソル内のドキュメントごとに関数を実行します。
- 私たちの関数は、各ドキュメントの内容をコンソールに出力するだけです。
注意: - データベースから特定のレコードを取得することも可能です。これは、find() 関数で検索条件を指定することで実行できます。たとえば、従業員名が次のレコードのみを取得したい場合を考えてみましょう。 Guru99、この文は次のように書くことができる。
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
上記のコードが正常に実行されると、コンソールに次の出力が表示されます。
出力:
出力から、
- コレクションからすべてのドキュメントが取得されたことがはっきりとわかります。これは、mongoDB 接続 (db) の find() メソッドを使用し、カーソルを使用してすべてのドキュメントを反復処理することで可能になります。
- コレクションへのドキュメントの挿入 – ドキュメントは、 MongoDB ライブラリ。以下のコード スニペットは、mongoDB コレクションにドキュメントを挿入する方法を示しています。
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').insertOne({
Employeeid: 4,
EmployeeName: "NewEmployee"
});
});
Code 説明:
- ここでは、次の insertOne メソッドを使用しています。 MongoDB ライブラリを使用して、ドキュメントを Employee コレクションに挿入します。
- 従業員コレクションに挿入する必要があるドキュメントの詳細を指定しています。
今、内容を確認してみると、 MongoDB データベースを確認すると、Employeeid が 4、EmployeeName が「NewEmployee」というレコードが Employee コレクションに挿入されていることがわかります。
注意: レコードがデータベースに挿入されており、ここでは出力を表示できないため、コンソールには出力が表示されません。
データがデータベースに正しく挿入されたことを確認するには、次のコマンドを実行する必要があります。 MongoDB
- EmployeeDB を使用する
- db.Employee.find({従業員ID :4 })
最初のステートメントは、EmployeeDb データベースに接続していることを確認します。 4 番目のステートメントは、従業員 ID が XNUMX であるレコードを検索します。
- コレクション内のドキュメントの更新 – によって提供される updateOne メソッドを使用して、コレクション内のドキュメントを更新できます。 MongoDB ライブラリ。以下のコード スニペットは、mongoDB コレクション内のドキュメントを更新する方法を示しています。
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').updateOne({
"EmployeeName": "NewEmployee"
}, {
$set: {
"EmployeeName": "Mohan"
}
});
});
Code 説明:
- ここでは、 MongoDB mongoDB コレクション内のドキュメントを更新するために使用されるライブラリ。
- どのドキュメントを更新する必要があるかという検索条件を指定しています。 この例では、EmployeeName が「NewEmployee」であるドキュメントを検索します。
- 次に、ドキュメントの EmployeeName の値を「NewEmployee」から「Mohan」に設定します。
今、内容を確認してみると、 MongoDB データベースを確認すると、Employee コレクションで Employeeid が 4、EmployeeName が「Mohan」という更新されたレコードが見つかります。
データベース内のデータが適切に更新されたことを確認するには、以下のコマンドを実行する必要があります。 MongoDB
- EmployeeDB を使用する
- db.Employee.find({従業員ID :4 })
最初のステートメントは、EmployeeDb データベースに接続していることを確認します。 4 番目のステートメントは、従業員 ID が XNUMX であるレコードを検索します。
- コレクション内のドキュメントの削除 – コレクション内のドキュメントは、 MongoDB ライブラリ。以下のコード スニペットは、mongoDB コレクション内のドキュメントを削除する方法を示しています。
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url, function(err, db) {
db.collection('Employee').deleteOne(
{
"EmployeeName": "Mohan"
}
);
});
Code 説明:
- ここでは、 MongoDB mongoDB コレクション内のドキュメントを削除するために使用されるライブラリ。
- どの文書を削除する必要があるかという検索条件を指定しています。 この例では、EmployeeName が「Mohan」であるドキュメントを検索し、このドキュメントを削除します。
今、内容を確認してみると、 MongoDB データベースを確認すると、Employeeid が 4、EmployeeName が「Mohan」というレコードが Employee コレクションから削除されていることがわかります。
データベース内のデータが適切に更新されたことを確認するには、以下のコマンドを実行する必要があります。 MongoDB
- EmployeeDB を使用する
- db.従業員.find()
最初のステートメントにより、EmployeeDb データベースに確実に接続されます。 XNUMX 番目のステートメントは、従業員コレクション内のすべてのレコードを検索して表示します。 ここで、レコードが削除されたかどうかを確認できます。
Node Express アプリを構築する方法 MongoDB コンテンツを保存して提供するため
Express と Express の両方を組み合わせてアプリケーションを構築する MongoDB 今日では非常に一般的です。
で作業する場合 Javaスクリプト Web ベースのアプリケーションとは、通常、ここでは MEAN スタックという用語を指します。
- MEANスタックという用語は、 JavaWeb アプリケーションの開発に使用されるスクリプト ベースのテクノロジ。
- MEAN はの頭字語です。 MongoDB、ExpressJS、 AngularJS、 そしてNode.js。
したがって、Node.js と MongoDB バックエンド データベースと対話するアプリケーションを提供するために連携します。
「express」と「」の使い方の簡単な例を見てみましょう。MongoDB" 一緒に。この例では、同じ Employee コレクションを使用します。 MongoDB 従業員DBデータベース。
ここで、Express を組み込んで、ユーザーが要求したときに Web ページにデータを表示します。 アプリケーションが Node.js 上で実行される場合、URL を参照する必要がある場合があります。 http://localhost:3000/Employeeid.
ページが起動されると、従業員コレクション内のすべての従業員 ID が表示されます。それでは、これを実現するためのコード スニペットをセクションごとに見てみましょう。
ステップ1) アプリケーションで使用する必要があるすべてのライブラリを定義します。この場合は、 MongoDB そしてエクスプレスライブラリ。
Code 説明:
- アプリケーションで使用する「express」ライブラリを定義しています。
- 私たちは「」を定義しています。MongoDB' ライブラリ。アプリケーションで接続するために使用されます。 MongoDB データベース。
- ここでは、接続するデータベースの URL を定義しています。
- 最後に、後でブラウザに表示する必要がある従業員 ID のコレクションを格納するために使用される文字列を定義します。
ステップ2) このステップでは、「従業員」コレクション内のすべてのレコードを取得し、それに応じて操作します。
Code 説明:
- 「Employeeid」というアプリケーションへのルートを作成しています。 したがって、誰かが閲覧するたびに、 http://localhost:3000/Employeeid アプリケーションの場合、このルートに定義されたコード スニペットが実行されます。
- ここでは、db.collection('Employee').find() コマンドを通じて、'Employee' コレクション内のすべてのレコードを取得しています。 次に、このコレクションをカーソルと呼ばれる変数に割り当てます。 このカーソル変数を使用すると、コレクションのすべてのレコードを参照できます。
- 現在、cursor.each() 関数を使用して、コレクションのすべてのレコードをナビゲートしています。 各レコードに対して、各レコードがアクセスされたときに何を行うかについてのコード スニペットを定義します。
- 最後に、返されたレコードが null でない場合は、コマンド「item.Employeeid」を使用して従業員を取得していることがわかります。コードの残りの部分は、結果がブラウザーに適切に表示されるように適切な HTML コードを構築するだけです。
ステップ3) このステップでは、出力を Web ページに送信し、アプリケーションが特定のポートでリッスンするようにします。
Code 説明:
- ここでは、前のステップで構築したコンテンツ全体を Web ページに送信します。 「res」パラメータを使用すると、コンテンツを応答として Web ページに送信できます。
- Node.js アプリケーション全体がポート 3000 でリッスンするようにしています。
出力:
出力から、
- これは、Employee コレクション内のすべての従業員 ID が取得されたことを明確に示しています。これは、 MongoDB ドライバーを使用してデータベースに接続し、すべての従業員レコードを取得し、その後「express」を使用してレコードを表示します。
参考用のコードは次のとおりです
var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";
app.route('/Employeeid').get(function(req, res)
{
MongoClient.connect(url, function(err, db) {
var cursor = db.collection('Employee').find();
//noinspection JSDeprecatedSymbols
cursor.each(function(err, item) {
if (item != null) {
str = str + " Employee id " + item.Employeeid + "</br>";
}
});
res.send(str);
db.close();
});
});
var server = app.listen(3000, function() {});
注意: あなたのバージョンに基づいて、cursor.each は非推奨になる可能性があります。 MongoDB 運転者。この問題を回避するには、cursor.each の前に //noinspection JSDeprecatedSymbols を追加できます。あるいは、forEach を使用することもできます。以下はforEachを使用したサンプルコードです。
var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
var str = "";
app.route('/Employeeid').get(function(req, res) {
MongoClient.connect(url, function(err, db) {
var collection = db.collection('Employee');
var cursor = collection.find({});
str = "";
cursor.forEach(function(item) {
if (item != null) {
str = str + " Employee id " + item.Employeeid + "</br>";
}
}, function(err) {
res.send(err);
db.close();
}
);
});
});
var server = app.listen(8080, function() {});
製品概要
- Node.js と組み合わせて使用されます。 NoSQL データベースを使用して、現代の多くの Web アプリケーションを構築できます。使用される一般的なデータベースには、次のようなものがあります。 MySQL and MongoDB.
- の作業に使用される一般的なモジュールの 1 つ MongoDB データベースは「」というモジュールですMongoDB。」このモジュールは、Node パッケージ マネージャーを介してインストールされます。
- MongoDB モジュールを使用すると、コレクション内のレコードを照会し、通常の更新、削除、挿入操作を実行できます。
- 最後に、最新の慣行の 1 つは、Express フレームワークを使用することです。 MongoDB 最新のアプリケーションを提供するために。 Express フレームワークは、 MongoDB ドライバーを作成し、それに応じて Web ページでユーザーにデータを表示します。











