MongoCollection
PHP Manual

MongoCollection::save

(PECL mongo >=0.9.0)

MongoCollection::saveSaves a document to this collection

Описание

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.

Список параметров

a

Array or object to save. If an object is used, it may not have protected or private properties.

Замечание:

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"

    Смотрите WriteConcerns. Значение по умолчанию для MongoClient является 1.

  • "fsync"

    Булевое значение, по умолчанию равно FALSE. Вынуждает выполнить синхронизацию вставленных данных на диск перед возвращением успешного статуса. Если установлено в TRUE, то будет использована синхронизированная вставка данных, и опция w будет установлена в 0.

  • "timeout"

    Целое значение, по умолчанию равно MongoCursor::$timeout. Если установлен флаг "safe", то значение обозначает количество миллисекунд, в течение которого клиент будет ожидать ответа от базы данных. Если база данных не ответит в течение указанного периода, то будет брошено исключение MongoCursorTimeoutException.

  • "safe"

    Устарело. Пожалуйста, используйте WriteConcern опцию w.

Возвращаемые значения

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.

Бросает исключение MongoCursorException, если установлена опция "w" и запись не удалась.

Бросает исключение MongoCursorTimeoutException, если опция "w" установлена в значение больше единицы и операция занимает более, чем MongoCursor::$timeout миллисекунд. Операция на сервере не прекращается, это таймаут клиента. Операция в MongoCollection::$wtimeout считается в миллисекундах.

Список изменений

Версия Описание
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.

Примеры

Пример #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);

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["x"]=>
  int(1)
  ["_id"]=>
  object(MongoId)#4 (1) {
    ["$id"]=>
    string(24) "50b6afe544415ed606000000"
  }
}

MongoCollection
PHP Manual