Node.js を MongoDB データベースに接続する 2 つの方法

不言
リリース: 2018-06-30 13:57:50
オリジナル
1364 人が閲覧しました

私は最近、オンラインマスターの足跡(コード)をたどり、mongodb データベースへの接続をシミュレートするために、mongdb の基本的な知識を学んでいます。次の記事では、MongoDB データベースに接続するための 2 つの node.js チュートリアルの方法を要約して紹介しています。非常に詳しく紹介されているので、必要な方は参考にしてください。以下を見てみましょう。

はじめに

MongoDB Node.js ドライバーは、公式にサポートされているネイティブの Node.js ドライバーであり、これまでのところ最高の実装であり、MongoDB によって公式にサポートされています。 MongoDB チームは、標準的なアプローチとして MongoDB Node.js ドライバーを採用しました。

npm install mongodb@1.4.3  // MongoDB Node.js驱动程序
npm install mongoose@3.8.8 //mongoose模块
ログイン後にコピー

Node.js から MongoDB データベースに接続するには、次の 2 つの方法から選択できます:

  • mongodb モジュールで提供される mongodbClient クラスをインスタンス化し、このインスタンス化されたオブジェクトを使用して作成し、 mongodb 接続を管理する;

  • 接続するには文字列を使用します

1. クライアント オブジェクトを通じて MongoDB に接続します

MongoDB データベースに接続する最も一般的で最良の方法は、MongoClient オブジェクトをインスタンス化することです。

MongoClient オブジェクト インスタンスを作成するための構文:

MongoClient( server, options );
ログイン後にコピー

server: サーバー オブジェクト;
options: データベース接続オプション

上の図に示すように、MongoClient 接続はバックグラウンドサーバーオブジェクト。このオブジェクトの機能は、MongoDB ドライバーがサーバーに接続する方法を定義することです。

次に、例を見てみましょう:

var MongoClient = require('mongodb').MongoClient, 
 Server  = require('mongodb').server;

// 创建客户端连接对象
var client = new MongoClient( new Server('localhost', 27017, {
           socketOpations: { connectTimeoutMS: 500 },
           poolSize: 5,
           auto_reconnect: true
          }, {
           numberOfRetries: 3,
           retryMilliSeconds: 500
          }));

// 打开对服务器端MongoDB数据库的连接
client.open(function(err, client) {
 if ( err ) {
  console.log('连接失败!');
 } else {
  var db = client.db('blogdb'); // 建立到数据库blogdb的连接
  if ( db ) {
   console.log('连接成功');
   db.authenticate('username', 'pwd', function(err, result) { // 对用户数据库身份进行验证
    if ( err ) {
     console.log('数据库用户身份验证失败');
     client.close(); // 关闭对MongoDB的连接
     console.log('连接已关闭......');
    } else {
     console.log('用户身份验证通过');
     db.logout(function (err, result) { // 关闭对数据库的连接,即退出数据库
      if ( !err ) {
       console.log('退出数据库出错');
      }

      client.close(); // 关闭对MongoDB的连接
      console.log( '已关闭连接......' );
     });
    }
   });
  }
 }
});
ログイン後にコピー

注: データベースからログアウトするには、データベース オブジェクトで logout() メソッドを使用します。これによりデータベースへの接続が閉じられ、Db オブジェクトを使用できなくなります。例: db.logout(); MongoDB への接続を閉じるには、クライアント接続で close() メソッドを呼び出します (例: client.close) ()</コード>。 <code>logout()方法。这将关闭到该数据库上的连接,你不在可以使用Db对象。例如: db.logout();而要关闭到MongoDB的连接,要在客户端连接上调用close()方法,例如: client.close()

写入关注

首先,我们在连接数据库的时候会用到一个关于写入关注级别的问题,说白了,个人理解的话就是相当于出现问题的一个处理优先顺序,你可以选择写入数据库之前是否需要你确认之类的,或者发生错误是否忽略之类的等等,如下图:

写 入 级 别说 明
-1网络错误被忽略
0写确认是不必要的
1请求写确认
2写确认请求跨主服务器和副本集中的一个辅助服务器
majority写确认是从副本集的主服务器请求的

用来创建MongoClient连接的Server对象的选项,如下:

用来创建MongoClient连接的数据库连接选项,如下:

2、通过一个连接字符串连接到MongoDB

这种方式要调用MongoClient类的connect( )

書き込み注意

まず、データベースに接続する際に、書き込み注意レベルについて質問させていただきますが、単刀直入に言うと、以下の問題に対する処理優先度に相当すると考えています。以下に示すように、データベースに入る前に確認する必要があるか、エラーを無視する必要があるかなどを書き込むことができます:

書き込みレベル

説明

-1ネットワークエラーは無視されます0書き込み確認は不要です1書き込み確認の要求2書き込み確認要求はプライマリサーバーと1つのセカンダリサーバーにまたがりますレプリカセット内majority 書き込み確認はレプリカ セットのマスター サーバーから要求されます MongoClient 接続の Server オブジェクトを作成するために使用されるオプションは次のとおりです: MongoClient 接続の作成に使用されるデータベース接続オプションは次のとおりです: 2. 接続文字列を介して MongoDB に接続します
MongoClient.connect(connString, options, callback)
ログイン後にコピー
このメソッドでは、MongoClient クラスの connect() メソッドを呼び出す必要があります。接続の構文は次のとおりです:
🎜🎜🎜 connString 文字列の構文は次のとおりです: 🎜🎜🎜🎜
mongodb://username:password@host:port/database?opations
ログイン後にコピー
🎜🎜🎜🎜MongoClient 接続文字列コンポーネント: 🎜オプション🎜🎜説明🎜 🎜🎜🎜🎜 🎜mongodb://🎜🎜 mongodb 接続形式を使用する文字列を指定します。 🎜🎜🎜🎜username🎜🎜 検証に使用されるユーザー名。オプション🎜🎜🎜🎜password🎜🎜 認証に使用するパスワード。オプション🎜🎜🎜🎜host🎜🎜MongoDB サーバーのホスト名またはドメイン名。複数のホスト:ポートの組み合わせを使用して、複数の MongoDB サーバーに接続できます。 例: mongodb://host1:270017、host2://270017、host3:270017/testDB🎜🎜🎜🎜port🎜🎜 MongoDB サーバーへの接続に使用されるポート。デフォルト値は 27017 です。 🎜🎜🎜🎜database🎜🎜 接続するデータベースの名前。 デフォルトは、接続時に admin🎜🎜🎜🎜options🎜🎜 によって使用されるオプションのキーと値のペアです。これらのオプションは、dbOpt パラメーターと serverOpt パラメーターで指定できます 🎜🎜🎜🎜

下面,看一个使用连接字符串方法连接MongoDB数据库的示例:

var MongoClient = require(&#39;mongodb&#39;).MongoClient;
MongoClient.connect(&#39;mongodb://mongodb:test@localhost:27017/blogdb&#39;, {
      db: { w: 1, native_parser: false },
      server: {
       poolSize: 5,
       socketOpations: { connectTimeoutMS: 500 },
       auto_reconnect: true
      },
      replSet: {},
      mongos: {}

     }, function(err, db) {
      if ( err ) {
       console.log(&#39;连接失败!&#39;);
      } else {
       console.log(&#39;连接成功!&#39;);
       // 注销数据库
       db.logout(function(err, result) {
        if ( err ) {
         console.log(&#39;注销失败...&#39;);
        }

        db.close(); // 关闭连接
        console.log(&#39;连接已经关闭!&#39;);
       });
      }

});
ログイン後にコピー

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

使用Nodejs连接mongodb数据库的实现

node-mysql中防止SQL注入的方法

以上がNode.js を MongoDB データベースに接続する 2 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート