MongoDB接続
このチュートリアルでは、MongoDB のさまざまな接続方法について説明します。
MongoDB サービスを開始する
前のチュートリアルでは、MongoDB サービスを開始する方法について説明しました。MongoDB インストール ディレクトリの bin ディレクトリで 'mongod' を実行するだけです。
mongodbは起動操作を実行後、必要な情報を出力した後は何も出力せず、接続が確立されるのを待ち、接続が確立されるとログ情報の出力を開始します。
MongoDB シェルを使用して MongoDB サーバーに接続できます。 PHP を使用して MongoDB に接続することもできます。このチュートリアルでは、MongoDB シェルを使用して Mongodb サービスに接続します。後続の章では、php を介して MongoDB サービスに接続する方法を紹介します。
シェル経由でMongoDBサービスに接続する
以下のコマンドを実行すると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/ ...
ユーザー名とパスワードを使用して、指定したデータベースに接続します:
指定したデータベースに接続するための形式は次のとおりです:
その他の接続例
ローカル データベース サーバーに接続します。ポートはデフォルトです。
ユーザー名 fred とパスワード foobar を使用して、localhost の管理データベースにログインします。
ユーザー名 fred とパスワード foobar を使用して、localhost の baz データベースにログインします。
レプリカ ペアを接続します。サーバー 1 は example1.com サーバー 2 は example2 です。
レプリカセットの 3 つのサーバー (ポート 27017、27018、および 27019) を接続します:
レプリカセットを3台のサーバーに接続すると、書き込み操作がマスターサーバーに適用され、クエリがスレーブサーバーに分散されます。
レプリカ セットの一部であるか、マスター サーバーまたはスレーブ サーバーであるかに関係なく、最初のサーバーに直接接続します。
接続サーバーが優先され、すべてのサーバーをリストする必要がある場合は、上記の接続方法を使用できます。
セーフ モードでローカルホストに接続します:
セーフ モードでレプリカ セットに接続し、タイムアウトを に設定して、少なくとも 2 つのレプリカ サーバーが正常に書き込みを行うまで待ちます。 2秒。
パラメータオプションの説明
標準形式:
標準の接続形式には複数のオプション (options) が含まれています。以下に示すように:
オプション | 説明 |
---|---|
replicaSet=name | レプリカセットの名前を確認します。 Impliesconnect=replicaSet. |
slaveOk=true|false |
|
safe=true|false |
|
w=n | ドライバーは getLastError コマンドに { w : n } を追加します。safe=true に適用されます。 |
wtimeoutMS=ms | ドライバーは getlasterror コマンドに { wtimeout : ms } を追加します。 apply safety=true. |
fsync=true|false |
|
journal=true|false | trueに設定すると、ジャーナルに同期します(データベースに送信する前にエンティティに書き込みます)。safe=true |
connectTimeoutMS=ms | OK 接続の時間。オープンしました。 |
socketTimeoutMS=ms | ソケットを送受信する時間。 |