(PECL mongo >= 0.8.1)
データベースからのバイナリデータを保存したり取得したりする際に使用するオブジェクトです。
データベースに挿入できるひとつのオブジェクトの最大サイズは 4Mb です。 それよりも大きいデータ (動画や音楽、キッシンジャーの自伝など) の場合は MongoGridFS を使います。4Mb より小さなデータの場合は、 MongoBinData を使ってドキュメントに埋め込むほうが簡単でしょう。
たとえば画像をドキュメントに埋め込むには、このようにします。
<?php
$profile = array("username" => "foobity",
"pic" => new MongoBinData(file_get_contents("gravatar.jpg"))
);
$users->save($profile);
?>
このクラスには type フィールドがありますが、 現時点ではこのフィールドはドライバやデータベースに対して何の効果も及ぼしません。 5 種類の型が定義済み (以下のクラス定数を参照ください) です。 (BSON 仕様からはずれることを覚悟の上で) ユーザーが自分で定義することもできます。 デフォルトでは、PHP ドライバは常に type 2: バイト配列を使います。
MongoBinData::FUNC
0x01
MongoBinData::BYTE_ARRAY
0x02
MongoBinData::UUID
0x03
MongoBinData::MD5
0x05
MongoBinData::CUSTOM
0x80