(PECL mongo >=0.9.0)
MongoCollection::insert — 配列をコレクションに追加する
配列。
追加時のオプション。
"safe"
追加に成功したかどうかをチェックします。
safe が設定されている場合は、 追加結果を含む配列を返します。設定されていない場合は、 配列が空でなかったかどうかをあらわす boolean 値を返します (空の配列は追加されません)。
"safe" オプションが設定されていて追加に失敗した場合に MongoCursorException をスローします (バージョン 1.0.1 以降)。
バージョン | 説明 |
---|---|
1.0.5 | 二番目のパラメータがオプションの配列に変わりました。1.0.5 より前のバージョンでは、二番目のパラメータは "safe" オプションを表す boolean 値でした。 |
例1 MongoCollection::insert() の _id の例
オブジェクトを挿入すると、参照渡しでない限りはそこに _id フィールドを追加します。
<?php
$a = array('x' => 1);
$collection->insert($a);
var_dump($a)
$b = array('x' => 1);
$ref = &$b;
$collection->insert($ref);
var_dump($ref);
?>
上の例の出力は、 たとえば以下のようになります。
array(2) { ["x"]=> int(1) ["_id"]=> object(MongoId)#4 (0) { } } array(1) { ["x"]=> int(1) }
例2 MongoCollection::insert() での safe の例
この例は、同じ _id を持つ二つの要素を追加しようとするものです。 safe が設定されていれば、 MongoCursorException がスローされます。
<?php
$person = array("name" => "Joe", "age" => 20);
$collection->insert($person, true);
// $person には _id フィールドができたので、
// もう一度追加しようとすると例外が発生します
try {
$collection->insert($person, true);
}
catch(MongoCursorException $e) {
echo "Can't save the same person twice!\n";
}
?>
MongoDB コアドキュメントの » insert を参照ください。