php.ini の設定により動作が変化します。
名前 | デフォルト | 変更履歴 |
---|---|---|
mongo.native_long | false* | PHP_INI_ALL |
mongo.long_as_object | false | PHP_INI_ALL |
mongo.default_host | "localhost" | PHP_INI_ALL |
mongo.default_port | 27017 | PHP_INI_ALL |
mongo.auto_reconnect | true | PHP_INI_SYSTEM |
mongo.allow_persistent | true | PHP_INI_SYSTEM |
mongo.chunk_size | 262144 | PHP_INI_SYSTEM |
mongo.cmd | "$" | PHP_INI_ALL |
mongo.utf8 | "1" | PHP_INI_ALL |
mongo.allow_empty_keys | false | PHP_INI_ALL |
以下に設定ディレクティブに関する 簡単な説明を示します。
この項目のデフォルトは 2.0.0 からは TRUE に変わりました。 設定したい値 (おそらく TRUE でしょう) をきちんと設定しておくようにしましょう。 そうすれば、ドライバをアップグレードしたときにいきなり挙動が変わることがなくなります。
64 ビットプラットフォームでは、mongo.native_long を設定すれば 64 ビット整数値を MongoDB に格納できるようになります。 設定しなければ、保存できるのは 32 ビット整数値だけです。 この項目を設定したときに使われる MongoDB のデータ型は BSON LONG です。 この設定を off にしたときに使われるデータ型は BSON INT となります。
この設定は、MongoDB から BSON LONG を読み込んだときの振る舞いにも影響します。 mongo.native_long を有効にしなければ、 ドライバは BSON LONG をすべて PHP の double 型に変換するので、精度が失われる可能性があります。
32 ビットプラットフォームでは、mongo.native_log の設定は整数値を MongoDB に格納する際には何の影響も及ぼしません。 整数値はこれまで通り BSON INT で格納されます。しかし、この設定を有効にして BSON LONG を MongoDB から読み込むと MongoCursorException がスローされ、 もとの精度のままではデータが読み込めないということを警告します。
32 ビットシステム上では特に、この項目とあわせて mongo.long_as_object を有効にしておくことを推奨します。
BSON_LONG を、プリミティブ型ではなく MongoInt64 のインスタンスで返します。
コンストラクタに何も渡さなかったときに使う、デフォルトのホスト名。
データベースサーバへの接続に使用する TCP ポート番号。 ポート番号が指定されなかった場合にこれを使用します。 データベースのデフォルトは 27017 です。
接続が切れた場合にデータベースに再接続するかどうか。
持続的接続を許可するかどうか。
チャンクあたりのバイト数。GridFS ファイルを分配する際に使用します。 この数値は、少なくとも 100 以上で 4 メガバイト未満 (最大値: 4194204)、そして小さめにすることを推奨します。
修飾子や比較において $ のかわりに使う文字。
非 UTF8 文字列に対して例外をスローするかどうか。 バージョン 1.0.4 になるまでは、PHP ドライバは非 UTF8 文字列を無視していました。 たとえそれが追加するつもりのなかったものであったとしてもです。 1.0.4 以降は、ドライバが MongoException をスローするようになりました。 非 UTF8 文字列を追加するアプリケーションの移行時の手間を軽減するため、 このオプションをオフにすれば以前のように例外をスローしない設定にすることができます。 このオプションはバージョン 1.1.0 以降で廃止され、非 UTF8 文字列に対しては常に例外をスローするようになります。
バージョン 1.0.11 で追加されました。
空文字列 ("") をキーの名前として許可するか否か。 デフォルトでは、データベースに空文字列のキーを渡そうとすると ドライバが例外を発生させます。 ダブルクォートの中で $ 演算子を使う場合などに、 不注意で空文字列を渡してしまうことは非常にありがちです。 この設定はデフォルトのままにしておくことを推奨します。 しかし、空文字列のキーを保存する必要がある場合はこのオプションを true にします。そうすると、ドライバが空文字列をそのままデータベースに送るようになります。