MongoCollection
PHP Manual

MongoCollection::save

(PECL mongo >=0.9.0)

MongoCollection::saveSaves a document to this collection

Descrierea

public mixed MongoCollection::save ( array|object $a [, array $options = array() ] )

If the object is from the database, update the existing database object, otherwise insert this object.

Parametri

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. Dacă jurnalizarea e activată, ea funcționează exact ca "j". Dacă jurnalizarea nu este acticvată, atunci se 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.

    Notă:

    Această opțiune e învechită. Utilizați în loc opțiunea "j".

  • "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.

  • "socketTimeoutMS"

    Integer, defaults to MongoCursor::$timeout. If acknowledged writes are used, this sets how long (in milliseconds) for the client to wait for a database response. If the database does not respond within the timeout period, a MongoCursorTimeoutException will be thrown.

  • "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.

  • "wTimeoutMS"

    How long to wait for write concern acknowledgement. The default value for MongoClient is 10000 milliseconds.

  • "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ă.

Valorile întoarse

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).

Erori/Excepții

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.

Istoria schimbărilor

Versiunea Descriere
1.5.0 Renamed the "wtimeout" option to "wTimeoutMS".
1.5.0 Renamed the "timeout" option to "socketTimeoutMS".
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.

Exemple

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"
  }
}

MongoCollection
PHP Manual