(PECL mongo >=0.9.0)
MongoCollection::save — Saves a document to this collection
If the object is from the database, update the existing database object, otherwise insert this object.
a
Array or object to save. If an object is used, it may not have protected or private properties.
Notă:
If the parameter does not have an _id key or property, a new MongoId instance will be created and assigned to it. See MongoCollection::insert() for additional information on this behavior.
options
Options for the save.
"fsync"
O valoare boolean-ă, valoarea
implicită este FALSE
. Forțează sincronizarea pe disc a operațiunii de inserare
înainte de a întoarce succes. Dacă are valoarea TRUE
, se presupune efectuarea
unei inserări cu confirmare și setarea w va fi modificată în
0.
"j"
O valoare boolean-ă, cu valoarea
implicită FALSE
. Forțează sincronizarea cu jurnalul a operațiunii de inserare,
înainte de a întoarce succes. Dacă are valoarea TRUE
, se presupune efectuarea
unei inserări cu confirmare și setarea w va fi modificată în
0.
"w"
Vedeți WriteConcerns. Valoarea implicită pentru MongoClient este 1.
"wtimeout"
Cât timp să se aștepte confirmarea WriteConcern. Valoarea implicită pentru MongoClient este 10000 milisecunde.
"safe"
Dezaprobat. Utilizați opțiunea WriteConcern w.
"timeout"
O valoare de tip întreg, implicit este MongoCursor::$timeout. Dacă se utilizează înscrieri cu confirmare, acest parametru stabilește intervalul de timp maximal (în milisecunde) pentru ca clientul să primească răspuns de la baza de date. Dacă baza de date nu răspunde în intervalul de timeout, o excepție MongoCursorTimeoutException va fi emisă.
If w
was set, returns an array containing the status of the save.
Otherwise, returns a boolean representing if the array was not empty (an empty array will not
be inserted).
Throws MongoException if the inserted document is empty or if it contains zero-length keys. Attempting to insert an object with protected and private properties will cause a zero-length key error.
Generează o excepție MongoCursorException dacă opțiunea "w" este stabilită și înscrierea eșuează.
Generează o excepție MongoCursorTimeoutException dacă opțiunea "w" este stabilită la o valoare mai mare decât unu și operațiunea durează mai mult de MongoCursor::$timeout milisecunde. Aceasta nu va întrerupe operațiunea pe server, este un timeout de partea clientului. Operațiunea din MongoCollection::$wtimeout este în milisecunde.
Versiunea | Descriere |
---|---|
1.2.0 | Added "timeout" option. |
1.0.11 | Disconnects on "not master" errors if "safe" is set. |
1.0.9 |
Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. |
1.0.5 | Added options parameter. |
Example #1 MongoCollection::save() example
<?php
$obj = array('x' => 1);
// insert $obj into the db
$collection->save($obj);
var_dump($obj);
// add another field
$obj['foo'] = 'bar';
// $obj cannot be inserted again, causes duplicate _id error
$collection->insert($obj);
// save updates $obj with the new field
$collection->save($obj);
?>
Exemplul de mai sus va afișa ceva similar cu:
array(2) { ["x"]=> int(1) ["_id"]=> object(MongoId)#4 (1) { ["$id"]=> string(24) "50b6afe544415ed606000000" } }