MongoDB チュートリアルlogin
MongoDB チュートリアル
著者:php.cn  更新時間:2022-04-21 17:49:03

MongoDB接続


このチュートリアルでは、MongoDB のさまざまな接続方法について説明します。


MongoDB サービスを開始する

前のチュートリアルでは、MongoDB サービスを開始する方法について説明しました。MongoDB インストール ディレクトリの bin ディレクトリで 'mongod' を実行するだけです。

mongodbは起動操作を実行後、必要な情報を出力した後は何も出力せず、接続が確立されるのを待ち、接続が確立されるとログ情報の出力を開始します。

MongoDB シェルを使用して MongoDB サーバーに接続できます。 PHP を使用して MongoDB に接続することもできます。このチュートリアルでは、MongoDB シェルを使用して Mongodb サービスに接続します。後続の章では、php を介して MongoDB サービスに接続する方法を紹介します。



シェル経由でMongoDBサービスに接続する

以下のコマンドを実行するとMongoDBサービスに接続できます。

注: localhost はホスト名です。このオプションは必須です:

mongodb://localhost

上記のコマンドを実行すると、次の出力が表示されます:

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> mongodb://localhostmongodb://localhost
...

この時点で戻ります./mongod コマンドを実行しているウィンドウを確認して、MongoDB サーバーに接続する場所を確認します。次の情報が表示されます:

……省略信息……
2015-09-25T17:22:27.336+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2015-09-25T17:22:27.336+0800 I CONTROL  [initandlisten] options: { storage: { dbPath: "/data/db" } }
2015-09-25T17:22:27.350+0800 I NETWORK  [initandlisten] waiting for connections on port 27017
2015-09-25T17:22:36.012+0800 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:37310 #1 (1 connection now open)  # 该行表明一个来自本机的连接

……省略信息……


MongoDB 接続コマンドの形式

MongoDB サーバーに接続するには、ユーザー名とパスワードを使用します。 「username:password@hostname/dbname」形式を使用する必要があります。「username」はユーザー名、「password」はパスワードです。

ユーザー名とパスワードを使用してデフォルトのデータベースに接続します:

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
mongodb://admin:123456@localhost/

上記のコマンドでは、ユーザー admin はパスワード 123456 を使用してローカル MongoDB サービスに接続します。出力結果は次のとおりです: <, p>

> mongodb://admin:123456@localhost/
...

ユーザー名とパスワードを使用して、指定したデータベースに接続します:

指定したデータベースに接続するための形式は次のとおりです:

mongodb://admin :123456@loc​​alhost/test


その他の接続例

ローカル データベース サーバーに接続します。ポートはデフォルトです。

mongodb://localhost

ユーザー名 fred とパスワード foobar を使用して、localhost の管理データベースにログインします。

mongodb://fred:foobar@localhost

ユーザー名 fred とパスワード foobar を使用して、localhost の baz データベースにログインします。

mongodb://fred:foobar@localhost/baz

レプリカ ペアを接続します。サーバー 1 は example1.com サーバー 2 は example2 です。

mongodb://example1.com:27017,example2.com:27017

レプリカセットの 3 つのサーバー (ポート 27017、27018、および 27019) を接続します:

mongodb://localhost,localhost:27018, localhost :27019

レプリカセットを3台のサーバーに接続すると、書き込み操作がマスターサーバーに適用され、クエリがスレーブサーバーに分散されます。

mongodb://host1,host2,host3/?slaveOk=true

レプリカ セットの一部であるか、マスター サーバーまたはスレーブ サーバーであるかに関係なく、最初のサーバーに直接接続します。

mongodb://host1,host2,host3/?connect=direct;slaveOk=true

接続サーバーが優先され、すべてのサーバーをリストする必要がある場合は、上記の接続方法を使用できます。

セーフ モードでローカルホストに接続します:

mongodb://localhost/?safe=true

セーフ モードでレプリカ セットに接続し、タイムアウトを に設定して、少なくとも 2 つのレプリカ サーバーが正常に書き込みを行うまで待ちます。 2秒。

mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000


パラメータオプションの説明

標準形式:

mongodb://[username:password@ ]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

標準の接続形式には複数のオプション (options) が含まれています。以下に示すように:

オプション説明
replicaSet=name レプリカセットの名前を確認します。 Impliesconnect=replicaSet.
slaveOk=true|false
  • tru​​e: connect=direct モードでは、このサーバーがマスターでない場合でも、ドライバーは最初のマシンに接続します。 connect=replicaSet モードでは、ドライバーはすべての書き込みリクエストをマスターに送信し、読み取り操作を他のスレーブ サーバーに分散します。

  • false: connect=direct モードでは、ドライバーはメイン サーバーを自動的に見つけます。 connect=replicaSet モードでは、ドライバーはメイン サーバーにのみ接続し、すべての読み取りおよび書き込みコマンドはメイン サーバーに接続されます。

safe=true|false
    • tru​​e: 更新操作の実行後、ドライバーは getLastError コマンドを送信して、更新が成功したことを確認します。 (wtimeoutMS も参照してください)。

false: 各更新の後、ドライバーは更新が成功したことを確認するために getLastError を送信しません。
w=n ドライバーは getLastError コマンドに { w : n } を追加します。safe=true に適用されます。
wtimeoutMS=msドライバーは getlasterror コマンドに { wtimeout : ms } を追加します。 apply safety=true.
fsync=true|false
  • tru​​e: ドライバーは { fsync : true を追加します。安全=trueに適用されます。

  • false: ドライバーはgetLastErrorコマンドに追加されません。

journal=true|false trueに設定すると、ジャーナルに同期します(データベースに送信する前にエンティティに書き込みます)。safe=true
connectTimeoutMS=ms OK 接続の時間。オープンしました。
socketTimeoutMS=msソケットを送受信する時間。

PHP中国語ウェブサイト