マニュアル
PHP Manual

php.ini オプション

php.ini の設定により動作が変化します。

Mongo 設定オプション
名前 デフォルト 変更履歴
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
PHP_INI_* モードの詳細および定義については どこで設定を行うのか を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

mongo.native-long int

この項目のデフォルトは 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 を有効にしておくことを推奨します。

mongo.long_as_object string

BSON_LONG を、プリミティブ型ではなく MongoInt64 のインスタンスで返します。

mongo.default_host string

コンストラクタに何も渡さなかったときに使う、デフォルトのホスト名。

mongo.default_port string

データベースサーバへの接続に使用する TCP ポート番号。 ポート番号が指定されなかった場合にこれを使用します。 データベースのデフォルトは 27017 です。

mongo.auto_reconnect bool

接続が切れた場合にデータベースに再接続するかどうか。

mongo.allow_persistent bool

持続的接続を許可するかどうか。

mongo.chunk_size int

チャンクあたりのバイト数。GridFS ファイルを分配する際に使用します。 この数値は、少なくとも 100 以上で 4 メガバイト未満 (最大値: 4194204)、そして小さめにすることを推奨します。

mongo.cmd string

修飾子や比較において $ のかわりに使う文字。

mongo.utf8 int

非 UTF8 文字列に対して例外をスローするかどうか。 バージョン 1.0.4 になるまでは、PHP ドライバは非 UTF8 文字列を無視していました。 たとえそれが追加するつもりのなかったものであったとしてもです。 1.0.4 以降は、ドライバが MongoException をスローするようになりました。 非 UTF8 文字列を追加するアプリケーションの移行時の手間を軽減するため、 このオプションをオフにすれば以前のように例外をスローしない設定にすることができます。 このオプションはバージョン 1.1.0 以降で廃止され、非 UTF8 文字列に対しては常に例外をスローするようになります。

mongo.allow_empty_keys int

バージョン 1.0.11 で追加されました。

空文字列 ("") をキーの名前として許可するか否か。 デフォルトでは、データベースに空文字列のキーを渡そうとすると ドライバが例外を発生させます。 ダブルクォートの中で $ 演算子を使う場合などに、 不注意で空文字列を渡してしまうことは非常にありがちです。 この設定はデフォルトのままにしておくことを推奨します。 しかし、空文字列のキーを保存する必要がある場合はこのオプションを true にします。そうすると、ドライバが空文字列をそのままデータベースに送るようになります。


マニュアル
PHP Manual