Node.js MongoDB 例を含むチュートリアル

ほとんどすべての現代の Web アプリケーションには、バックエンドに何らかのデータ ストレージ システムがあります。 たとえば、Web ショッピング アプリケーションの場合、商品の価格などのデータはデータベースに保存されます。

Node js フレームワークは、両方のリレーショナル (たとえば、 Oracle および MS SQL Server) および非リレーショナル データベース (たとえば、 MongoDB)。このチュートリアルでは、Node.js アプリケーション内からデータベースを使用する方法を見ていきます。

Node.js および NoSQL データベース

長年にわたり、次のような NoSQL データベース MongoDB および For MySQL は、データを保存するデータベースとして非常に人気があります。 これらのデータベースがあらゆるタイプのコンテンツ、特にあらゆる形式で保存できることが、これらのデータベースを非常に有名にしている理由です。

Node.js には、MySQL と MongoDB データベースとして。これらのデータベースのいずれかを使用するには、Node パッケージ マネージャーを使用して必要なモジュールをダウンロードして使用する必要があります。

MySQL、必要なモジュールは「mysql」と呼ばれ、使用するために MongoDB インストールが必要なモジュールは「Mongoose」です。

これらのモジュールを使用すると、次のことを実行できます。wing Node.js での操作

  1. 接続を管理する pooling – ここで、Node.js によって維持および保存される MySQL データベース接続の数を指定できます。
  2. データベースへの接続を作成して閉じます。 どちらの場合も、「作成」接続メソッドと「閉じる」接続メソッドが実行されるたびに呼び出すことができるコールバック関数を提供できます。
  3. クエリを実行してそれぞれのデータベースからデータを取得し、データを取得できます。
  4. データの挿入、削除、更新などのデータ操作も、これらのモジュールを使用して実行できます。

残りのトピックについては、どのように連携できるかを見ていきます。 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},
}
  1. NPM モジュールのインストール

Node アプリケーション内から Mongo にアクセスするにはドライバーが必要です。利用可能な Mongo ドライバーは多数ありますが、 MongoDB 最も人気のあるものの一つです。をインストールするには、 MongoDB モジュールで、以下のコマンドを実行します

npmインストール mongodb

  1. への接続の作成と終了 MongoDB データベース。 以下のコード スニペットは、への接続を作成および閉じる方法を示しています。 MongoDB データベース。

使い方 MongoDB とNode.js

コードの説明:

  1. 最初のステップは、mongoose モジュールをインクルードすることです。これは、require 関数を通じて実行されます。 このモジュールを配置したら、このモジュールで利用可能な必要な関数を使用してデータベースへの接続を作成できます。
  2. 次に、データベースへの接続文字列を指定します。 接続文字列には、渡される 3 つのキー値があります。
  • 最初は 'mongodb' これは、に接続していることを指定します。 mongoDB データベース。
  • 次は「localhost」です。これは、ローカル マシン上のデータベースに接続していることを意味します。
  • 次は「EmployeeDB」です。これは、データベースで定義されているデータベースの名前です。 MongoDB データベース。
  1. 次のステップは、実際にデータベースに接続することです。 connect 関数は URL を受け取り、コールバック関数を指定する機能を備えています。 データベースへの接続が開かれたときに呼び出されます。 これにより、データベース接続が成功したかどうかを知ることができます。
  2. この関数では、接続が正常に作成されたことを示すために、文字列「接続が確立されました」をコンソールに書き込みます。
  3. 最後に、db.close ステートメントを使用して接続を閉じます。

上記のコードが正しく実行されると、以下に示すように「Connected」という文字列がコンソールに書き込まれます。

使い方 MongoDB とNode.js

  1. データのクエリを実行する MongoDB データベース –を使用して MongoDB ドライバーからデータをフェッチすることもできます MongoDB 以下のセクションでは、ドライバーを使用して従業員コレクションからすべてのドキュメントを取得する方法を示します。 EmployeeDB データベースにあります。 これは私たちのコレクションです MongoDB 従業員関連のすべてのドキュメントが含まれるデータベース。各ドキュメントには、ドキュメントの値を定義するオブジェクト ID、従業員名、および従業員 ID があります。

使い方 MongoDB とNode.js

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);

    });
});

コードの説明:

  1. 最初のステップでは、カーソルを作成します (カーソルは、データベースからフェッチされたさまざまなレコードを指すために使用されるポインターです。次に、カーソルはデータベース内のさまざまなレコードを反復処理するために使用されます。ここでは、データベースからフェッチされたレコードへのポインタを格納するために使用される、cursor と呼ばれる変数名)。 MongoDb コレクション。レコードを取得するコレクション「Employee」を指定する機能もあります。 find() 関数は、データベースからすべてのドキュメントを取得することを指定するために使用されます。 MongoDB コレクション。
  2. ここでカーソルを反復処理し、カーソル内のドキュメントごとに関数を実行します。
  3. 私たちの関数は、各ドキュメントの内容をコンソールに出力するだけです。

注意: - データベースから特定のレコードをフェッチすることも可能です。 これは、find()関数で検索条件を指定することで実行できます。 たとえば、従業員名が Guru99 であるレコードを取得したいだけの場合、このステートメントは次のように記述できます。

var cursor=db.collection('Employee').find({EmployeeName: "guru99"})

上記のコードが正常に実行されると、次のようになります。wing 出力がコンソールに表示されます。

出力:

使い方 MongoDB とNode.js

出力から、

  • コレクションからすべての文書が取得されたことがはっきりとわかります。これは、 mongoDB 接続 (db) を実行し、カーソルを使用してすべてのドキュメントを反復処理します。
  1. コレクションへのドキュメントの挿入 – ドキュメントは、 MongoDB 図書館。以下のコード スニペットは、ドキュメントを mongoDB コレクション。

使い方 MongoDB とNode.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').insertOne({
        Employeeid: 4,
        EmployeeName: "NewEmployee"
    });
}); 

コードの説明:

  1. ここでは、次の insertOne メソッドを使用しています。 MongoDB ライブラリを使用して、ドキュメントを Employee コレクションに挿入します。
  2. ドキュメントを指定していますtails Employee コレクションに挿入する必要があるもの。

今、内容を確認してみると、 MongoDB データベースを確認すると、Employeeid が 4、EmployeeName が「NewEmployee」というレコードが Employee コレクションに挿入されていることがわかります。

注: レコードがデータベースに挿入されており、ここでは出力を表示できないため、コンソールには出力が表示されません。

データがデータベースに正しく挿入されたことを確認するには、次のコマンドを実行する必要があります。wing のコマンド MongoDB

  1. EmployeeDB を使用する
  2. db.Employee.find({従業員ID :4 })

最初のステートメントは、EmployeeDb データベースに接続していることを確認します。 4 番目のステートメントは、従業員 ID が XNUMX であるレコードを検索します。

  1. コレクション内のドキュメントの更新 – によって提供される updateOne メソッドを使用して、コレクション内のドキュメントを更新できます。 MongoDB 図書館。以下のコード スニペットは、ドキュメントを更新する方法を示しています。 mongoDB コレクション。

使い方 MongoDB とNode.js

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"
        }
    });
}); 

コードの説明:

  1. ここでは、 MongoDB ライブラリ。ドキュメントを更新するために使用されます。 mongoDB コレクション。
  2. どのドキュメントを更新する必要があるかという検索条件を指定しています。 この例では、EmployeeName が「NewEmployee」であるドキュメントを検索します。
  3. 次に、ドキュメントの EmployeeName の値を「NewEmployee」から「Mohan」に設定します。

今、内容を確認してみると、 MongoDB データベースを確認すると、Employee コレクションで Employeeid が 4、EmployeeName が「Mohan」という更新されたレコードが見つかります。

データベース内のデータが適切に更新されたことを確認するには、次のコマンドを実行する必要があります。wing のコマンド MongoDB

  1. EmployeeDB を使用する
  2. db.Employee.find({従業員ID :4 })

最初のステートメントは、EmployeeDb データベースに接続していることを確認します。 4 番目のステートメントは、従業員 ID が XNUMX であるレコードを検索します。

  1. コレクション内のドキュメントの削除 – コレクション内のドキュメントは、 MongoDB 図書館。以下のコード スニペットは、ドキュメントを削除する方法を示しています。 mongoDB コレクション。

使い方 MongoDB とNode.js

var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';

MongoClient.connect(url, function(err, db) {

    db.collection('Employee').deleteOne(

        {
            "EmployeeName": "Mohan"
        }

    );
}); 

コードの説明:

  1. ここでは、 MongoDB ライブラリ。ドキュメントを削除するために使用されます。 mongoDB コレクション。
  2. どの文書を削除する必要があるかという検索条件を指定しています。 この例では、EmployeeName が「Mohan」であるドキュメントを検索し、このドキュメントを削除します。

今、内容を確認してみると、 MongoDB データベースを確認すると、Employeeid が 4、EmployeeName が「Mohan」というレコードが Employee コレクションから削除されていることがわかります。

データベース内のデータが適切に更新されたことを確認するには、次のコマンドを実行する必要があります。wing のコマンド MongoDB

  1. EmployeeDB を使用する
  2. db.従業員.find()

最初のステートメントにより、EmployeeDb データベースに確実に接続されます。 XNUMX 番目のステートメントは、従業員コレクション内のすべてのレコードを検索して表示します。 ここで、レコードが削除されたかどうかを確認できます。

Node Express アプリを構築する方法 MongoDB コンテンツを保存して提供するため

Express と Express の両方を組み合わせてアプリケーションを構築する MongoDB 今日では非常に一般的です。

で作業する場合 JavaScriptを Web ベースのアプリケーションとは、通常、ここでは MEAN スタックという用語を指します。

  • MEAN スタックという用語は、Web アプリケーションの開発に使用される JavaScript ベースのテクノロジのコレクションを指します。
  • MEAN はの頭字語です。 MongoDB、ExpressJS、 AngularJS、 そしてNode.js。

したがって、Node.js と MongoDB バックエンド データベースと対話するアプリケーションを提供するために連携します。

「express」と「」の使い方の簡単な例を見てみましょう。MongoDB" 一緒に。この例では、同じ Employee コレクションを使用します。 MongoDB 従業員DBデータベース。

ここで、Express を組み込んで、ユーザーが要求したときに Web ページにデータを表示します。 アプリケーションが Node.js 上で実行される場合、URL を参照する必要がある場合があります。 http://localhost:3000/Employeeid.

ページが起動されると、Employee コレクション内のすべての従業員 ID が表示されます。 それでは、これを実現するためのコード スニペットをセクションで見てみましょう。

ステップ1) アプリケーションで使用する必要があるすべてのライブラリを定義します。この場合は、 MongoDB そしてエクスプレスライブラリ。

Node Express アプリを構築する MongoDB

コードの説明:

  1. アプリケーションで使用する「express」ライブラリを定義しています。
  2. 私たちは「」を定義しています。MongoDB' ライブラリ。アプリケーションで接続するために使用されます。 MongoDB データベース。
  3. ここでは、接続するデータベースの URL を定義しています。
  4. 最後に、ブラウザに表示する必要がある従業員 ID のコレクションを保存するために使用される文字列を定義しています。 later に。

ステップ2) このステップでは、「従業員」コレクション内のすべてのレコードを取得し、それに応じて操作します。

Node Express アプリを構築する MongoDB

コードの説明:

  1. 「Employeeid」というアプリケーションへのルートを作成しています。 したがって、誰かが閲覧するたびに、 http://localhost:3000/Employeeid アプリケーションの場合、このルートに定義されたコード スニペットが実行されます。
  2. ここでは、db.collection('Employee').find() コマンドを通じて、'Employee' コレクション内のすべてのレコードを取得しています。 次に、このコレクションをカーソルと呼ばれる変数に割り当てます。 このカーソル変数を使用すると、コレクションのすべてのレコードを参照できます。
  3. 現在、cursor.each() 関数を使用して、コレクションのすべてのレコードをナビゲートしています。 各レコードに対して、各レコードがアクセスされたときに何を行うかについてのコード スニペットを定義します。
  4. 最後に、返されたレコードが null でない場合は、コマンド「item.Employeeid」を介して従業員を取得していることがわかります。 コードの残りの部分は、結果をブラウザに適切に表示できるようにする適切な HTML コードを構築するだけです。

ステップ3) このステップでは、出力を Web ページに送信し、アプリケーションが特定のポートでリッスンするようにします。

Node Express アプリを構築する MongoDB

コードの説明:

  1. ここでは、前のステップで構築したコンテンツ全体を Web ページに送信します。 「res」パラメータを使用すると、コンテンツを応答として Web ページに送信できます。
  2. Node.js アプリケーション全体がポート 3000 でリッスンするようにしています。

出力:

Node Express アプリを構築する MongoDB

出力から、

  • これは、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 と MongoDB.
  • の作業に使用される一般的なモジュールの 1 つ MongoDB データベースは「」というモジュールですMongoDB。」このモジュールは、Node パッケージ マネージャーを介してインストールされます。
  • MongoDB モジュールを使用すると、コレクション内のレコードをクエリしたり、通常の更新、削除、挿入操作を実行したりできます。
  • 最後に、最新の慣行の 1 つは、Express フレームワークを使用することです。 MongoDB 最新のアプリケーションを提供するために。 Express フレームワークは、 MongoDB ドライバーを作成し、それに応じて Web ページでユーザーにデータを表示します。