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.

  • "w"

    Vedeți WriteConcerns. Valoarea implicită pentru MongoClient este 1.

  • "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 aprobate și setarea w va fi modificată în 0.

  • "timeout"

    valoare întreagă, implicit este MongoCursor::$timeout. Dacă "safe" este stabilit, aceasta va stabili pentru client durata de așteptare (în milisecunde) a răspunsului de la baza de date. Dacă baza de date nu răspunde în intervalul de timp stabilit, va fi generată o excepție MongoCursorTimeoutException.

  • "safe"

    Dezaprobat. Utilizați opțiunea WriteConcern w.

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