Список изменений
Следующие изменения были произведены с классами/функциями/методами данного расширения.
MongoDB PHP Driver 1.5.0
Поддерживает все новые функции для MongoDB 2.6, в том числе:
- Агрегат теперь может вернуть курсор
- Агрегационный конвейер теперь можно объяснить
- Возможно установить maxTimeMS для команд и запросов
- Прозрачная поддержка нового командного API записи MongoDB
- Новые классы MongoWriteBatch (с использованием нового API записи MongoDB)
- Поддержка функций MongoDB Enterprise (например, Kerberos, LDAP, X509)
- Возможность настройки приемлемой задержки сервера для вторичных чтений (secondaryAcceptableLatencyMS)
В этом выпуске некоторые функциональные возможности драйвера, которые ранее были задокументированы как устаревшие, теперь формально вызывают уведомления об устаревании. Это включает:
- Создание класса Mongo
- Вызов MongoCursor::slaveOkay()
- Параметры "wtimeout" и "safe" для операций записи MongoCollection
- Управление открытыми свойствами в основных классах (таких как $collection->w)
Замечание:
Ранее устаревшие функции не были удалены.
Изменения в поведении:
- Установка параметра mongo.native_long INI теперь вызывает ошибку на 32-битных платформах, и по умолчанию имеет значение true для 64-битных платформ.
MongoDB PHP Driver 1.4.0
Серия 1.4 представила фундаментальные изменения в том, как создаются соединения с серверами MongoDB. Драйвер теперь использует собственные потоки PHP, поэтому применяются все обычные параметры потоков PHP. Кроме того, была добавлена экспериментальная поддержка контекста потока.
В серии 1.4.x также добавлена поддержка MongoDB 2.4.x.
Однако наиболее важные улучшения касаются обработки наборов реплик, особенно узлов с истекшим временем ожидания и узлов, которые недоступны по различным причинам. Помимо улучшений в обработке набора реплик, этот выпуск решает проблемы с настройками чтения через узлы mongos. Также добавлена поддержка подключений с поддержкой SSL, а также параметров строки журнала и fsync.
MongoDB PHP Driver 1.3.0
Серия 1.3 представила несколько основных изменений в расширении, таких как полностью переписанная обработка соединений (и удаление механизма объединения), поддержка предпочтений чтения и изменение по умолчанию гарантий записи, которые должны быть подтверждены, путем введения нового класса MongoClient, который служит заменой устаревшему классу Mongo.
Драйвер теперь также поддерживает подключение к нескольким экземплярам mongos (маршрутизатор Mongo Shard) для балансировки нагрузки.
Другие улучшения включают улучшенное ведение журналов для упрощения отладки обработки соединений с MongoLog и поддержку » структуры агрегации с помощью метода MongoCollection::aggregate().
Изменения в существующих методах
Ниже приведен список всех улучшений существующих методов с момента их появления.
Version | Function | Description |
---|---|---|
PECL mongo 1.7.0 | MongoDB::execute | Этот метод устарел из-за того, что команда лежащий в основе eval устарела в MongoDB 3.0+. |
PECL mongo 1.6.0 | MongoClient::__construct | Добавлена поддержка "SCRAM-SHA-1" в опции "authMechanism". |
MongoCollection::count | Теперь второй параметр options является массивом опций. limit и skip в качестве второго и третьего параметра, соотвественно, являются устаревшими | |
MongoDB::getCollectionNames | Изменен первый параметр, чтобы он был массивом опций. До версии 1.6.0 первым параметром было булево значение, указывающее на параметр "includeSystemCollections". | |
MongoDB::listCollections | Изменен первый параметр, чтобы он был массивом опций. До версии 1.6.0 первым параметром было булево значение, указывающее на параметр "includeSystemCollections". | |
PECL mongo 1.5.0 | log_cmd_delete | Доступна только при соединении с MongoDB 2.6.0+ |
log_cmd_insert | Доступна только при соединении с MongoDB 2.6.0+ | |
log_cmd_update | Доступна только при соединении с MongoDB 2.6.0+ | |
log_write_batch | Доступно только при подключении к MongoDB 2.6.0+ | |
MongoBinData::__construct | Значение по умолчанию изменено с 2 (MongoBinData::BYTE_ARRAY) на 0 (MongoBinData::GENERIC). | |
MongoClient::__construct | Добавлены "authMechanism", "gssapiServiceName" и "secondaryAcceptableLatencyMS". | |
MongoClient::__construct | Добавлена опция "authSource". | |
MongoCollection::aggregate | Добавлен необязательный аргумент options | |
MongoCollection::batchInsert | Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout". Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout". Выдает E_DEPRECATED, когда используется "safe". | |
MongoCollection::ensureIndex | Переименован параметр "wtimeout" в "wTimeoutMS". Выдает E_DEPRECATED, когда используется "wtimeout". Переименован параметр "timeout" в "socketTimeoutMS". Выдает E_DEPRECATED, когда используется "timeout". Выдает E_DEPRECATED, когда используется "safe". | |
MongoCollection::findOne | Добавлен необязательный параметр options. | |
MongoCollection::group | Добавлена опция "maxTimeMS". | |
MongoCollection::insert | Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout". Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout". Выдает E_DEPRECATED, когда используется "safe". | |
MongoCollection::remove | Добавлена опция "wTimeoutMS" в замен устаревшей "wtimeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "wtimeout". Добавлена опция "socketTimeoutMS" в замен устаревшей "timeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "timeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "safe". | |
MongoCollection::save | Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout". Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout". Выдает E_DEPRECATED, когда используется "safe". | |
MongoCollection::toIndexString | Этот метод устарел. | |
MongoCollection::update | Добавлена опция "wTimeoutMS", которая заменяет "wtimeout". Выдает E_DEPRECATED, когда используется "wtimeout". Добавлена опция "socketTimeoutMS", которая заменяет "timeout". Выдает E_DEPRECATED, когда используется "timeout". Выдает E_DEPRECATED, когда используется "safe". | |
MongoCursor::slaveOkay | Метод устарел. Используйте вместо него MongoCursor::setReadPreference и . | |
MongoDB::command | Переименована опция "timeout" в "socketTimeoutMS". Выдает E_DEPRECATED при использовании "timeout". Добавлен параметр ссылки на hash. | |
PECL mongo 1.4.5 | MongoCursor::batchSize | До версии 1.4.5 этот метод генерировал исключение MongoCursorException, если курсор уже начал итерацию. |
PECL mongo 1.4.0 | MongoClient::__construct | Добавлена опция "ssl" и поддержка подключения по SSL. Добавлена опция "wTimeoutMS", которая заменяет "wTimeout". Выдает E_DEPRECATED, при использовании "slaveOkay" или "timeout". |
MongoCursor::hint | Аргумент index теперь поддерживает имена индексов, как строковые значения. В версиях до 1.4.0 принимались только значения массива или объекта. | |
MongoCursor::setFlag | Добавлена поддержка флага 3 (OPLOG_REPLAY). Версии до 1.4.0 будут выдавать предупреждение о том, что флаг не поддерживается. | |
MongoDB::createCollection | В версиях до 1.4.0 все параметры были аргументами метода. Синопсис функций в этих старых версиях: public MongoCollectionMongoDB::createCollection stringname boolcappedfalse intsize0 intmax0 Значение параметров такое же, как описано выше в аргументе options. | |
MongoId::__construct | Исключение выдается при передаче неверной строки | |
PECL mongo 1.3.4 | MongoClient::__construct | Добавлены опции "connectTimeoutMS" и "socketTimeoutMS". |
MongoCollection::batchInsert | Добавлена опция "wtimeout". | |
MongoCollection::ensureIndex | Добавлена опция "wtimeout". | |
MongoCollection::insert | Добавлена опция "wtimeout". | |
MongoCollection::remove | Добавлена опция "wtimeout". | |
MongoCollection::update | Добавлена опция "wtimeout". | |
PECL mongo 1.3.3 | MongoClient::getReadPreference | Возвращаемое значение изменилось, чтобы соответствовать MongoClient::setReadPreference. Значение type было изменено с числа на строку, type_string была удалена, и tagsets теперь выражают теги, как пары ключ/значение вместо строк, разделенных двоеточиями. |
MongoCollection::getReadPreference | Возвращаемое значение было изменено, чтобы соответствовать MongoCollection::setReadPreference. Значение type было изменено с числа на строку, type_string была удалена, и tagsets теперь выражают теги как пары ключ/значение вместо строк, разделенных двоеточиями. | |
MongoDB::getReadPreference | Возвращаемое значение было изменено, чтобы соответствовать MongoDB::setReadPreference. Значение type было изменено с числа на строку, type_string была удалена, и tagsets теперь выражают теги как пары ключ/значение вместо строк, разделенных двоеточиями. | |
PECL mongo 1.3.0 | MongoClient::close | Параметр connection к этой функции был добавлен в 1.3.0. До этого этим методом закрывалось только соединение записи. |
MongoClient::__construct | Добавлены опции "readPreference", "readPreferenceTags", "w", и "wTimeout". | |
MongoCollection::batchInsert | Добавлена опция "w". | |
MongoCollection::ensureIndex | Добавлена опция "w". Параметр options больше не принимает логическое значение для обозначения уникального индекса. Вместо этого это теперь должно быть передано array('unique' => true). | |
MongoCollection::insert | Добавлена опция "w" option. Параметр options больше не принимает логическое значение для обозначения подтвержденной записи. Вместо этого теперь это должно быть сделано с array('w' => 1) (поведение по умолчанию MongoClient). | |
MongoCollection::remove | Добавлена опция "w". Параметр options больше не принимает логические значения для определения поведения как "justOne". Вместо этого необходимо использовать array('justOne' => true). | |
MongoCollection::update | Добавлена опция "w". Параметр options больше не принимает логическое значение для обозначения слияния. Вместо этого теперь необходимо указывать array('upsert' => true). | |
MongoDB::listCollections | Добавлен параметр includeSystemCollections. | |
MongoGridFSCursor::key | Возвращается _id документа, как строковое значение, поскольку ключ должен быть уникальным. До 1.3.0, возвращался параметр filename. | |
PECL mongo 1.2.11 | Mongo::getPoolSize | Выдает E_DEPRECATED, при использовании. |
Mongo::getSlave | Выдает E_DEPRECATED, при использовании. | |
Mongo::getSlaveOkay | Выдает E_DEPRECATED, при использовании. | |
Mongo::poolDebug | Выдает E_DEPRECATED, при использовании. | |
Mongo::setSlaveOkay | Выдает E_DEPRECATED, при использовании. | |
Mongo::switchSlave | Выдает E_DEPRECATED, при использовании. | |
MongoBinData::__construct | Выдает E_DEPRECATED, когда второй аргумент не используется. Значение type по умолчанию может измениться в ближайшем будущем. | |
MongoCollection::ensureIndex | Выдает E_DEPRECATED, когда options являются скалярными. | |
MongoCollection::getSlaveOkay | Выдает E_DEPRECATED при использовании. | |
MongoCollection::group | Выдает E_DEPRECATED, когда используется options, как scalar. | |
MongoCollection::remove | Ошибка уровня E_DEPRECATED если options скалярного типа. | |
MongoCollection::setSlaveOkay | Выдает E_DEPRECATED при использовании. | |
MongoCollection::update | Выдает E_DEPRECATED, когда options являются scalar. | |
MongoCursor::doQuery | Выдает E_DEPRECATED при использовании. | |
MongoDB::authenticate | Выдает E_DEPRECATED при использовании. Пожалуйста, передавайте детали аутентификации в конструкторе. | |
MongoDB::forceError | Выдает E_DEPRECATED при использовании. | |
MongoDB::getSlaveOkay | Выдает E_DEPRECATED при использовании. | |
MongoDB::prevError | Выдает E_DEPRECATED при использовании. | |
MongoDB::resetError | Выдает E_DEPRECATED при использовании. | |
MongoDB::setSlaveOkay | Выдает E_DEPRECATED при использовании. | |
MongoPool::getSize | Выдает E_DEPRECATED, при использовании. | |
MongoPool::info | Выдает E_DEPRECATED, при использовании. | |
MongoPool::setSize | Выдает E_DEPRECATED, при использовании. | |
PECL mongo 1.2.10 | MongoClient::getHosts | Добавлена поддержка нерепликазных наборов. Возвращенные элементы массива теперь также включают имя hostname и port. |
PECL mongo 1.2.7 | MongoCollection::batchInsert | Добавлена опция "continueOnError". |
PECL mongo 1.2.5 | MongoGridFS::storeUpload | Изменен второй параметр на массив метаданных. До 1.2.5 вторым параметром была необязательная строка, переопределяющая имя файла. |
PECL mongo 1.2.0 | MongoClient::close | До версии 1.2.0 драйвер не использовал постоянные соединения по умолчанию, и все соединения закрывались, как только выход из MongoDB выходил из области действия. Начиная с версии 1.2.0, это больше не так, и плохая идея - вызывать close, так как в итоге вы можете перегружать сервер соединениями под высокой нагрузкой. |
MongoClient::__construct | Добавлены опции "username" и "password". Удалена опция "persist", так как все соединения теперь являются постоянными. Ее все еще можно использовать, но это ни на что не влияет. "persist" Когда соединение должно быть постоянным. Если установлено, соединение будет постоянным. Строковое представление значения используется в качестве идентификатора для соединения, поэтому два экземпляра MongoClient, которые инициализируются array("persist" => "foobar"), будут использовать одно и то же соединение с базой данных, тогда как экземпляр, инициализированный array("persist" => "barbaz"), будет использовать другое соединение с базой данных. Опция "replicaSet" теперь принимает строку, а не логическое значение. | |
MongoCollection::ensureIndex | Добавлена опция "timeout". | |
MongoCollection::insert | Добавлена опция "timeout". | |
MongoCollection::remove | Добавлена опция "timeout". | |
MongoCollection::save | Добавлена опция "timeout". | |
MongoCollection::update | Добавлена опция "timeout". | |
MongoDB::command | Добавлен параметр options с одним вариантом: "timeout". | |
PECL mongo 1.1.0 | MongoCursor::info | Добавлен ряд других полей, включая id (идентификатор курсора), at (счетчик драйвера для которого документ является текущим), numReturned (число, возвращаемое сервером в текущем пакете) и server (на какой сервер был отправлен запрос) - полезно в сочетании с . |
PECL mongo 1.0.11 | MongoCollection::ensureIndex | Опция "safe" запускает первичное аварийное переключение, если это необходимо. MongoException будет выброшено, если имя индекса (либо сгенерированное, либо установленное) длиннее 128 байт. |
MongoCollection::insert | Отключается при ошибках "not master", если установлен "safe". | |
MongoCollection::remove | Ошибки сброса соединения на "не мастере" если установлена "safe". | |
MongoCollection::save | Отключается при ошибках "not master", если установлен "safe". | |
MongoCollection::update | Отключается при ошибках "not master", если установлен "safe". | |
PECL mongo 1.0.10 | MongoCursor::info | Добавлено поле started_iterating, логическое значение, указывающее, является ли курсор пре- или пост-запросом. |
PECL mongo 1.0.9 | MongoClient::__construct | Добавлена опция "replicaSet". |
MongoCollection::batchInsert | Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения. Добавлена опция "fsync". | |
MongoCollection::insert | Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения. Добавлена опция "fsync". Тип возвращаемого значения был изменен на массив, содержащий информацию об ошибке, если используется параметр "safe". В противном случае логическое значение возвращается, как и раньше. | |
MongoCollection::remove | Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения. Добавлена опция "fsync". Тип возвращаемого значения изменен на массив, содержащий информацию об ошибке если установлена опция "safe". В протовном случае, как и раньше, возвращается логическое значения. | |
MongoCollection::save | Добавлена опция "fsync". | |
MongoCollection::update | Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения. Добавлена опция "fsync". Тип возвращаемого значения был изменен на массив, содержащий информацию об ошибке, если используется параметр "safe". В противном случае логическое значение возвращается, как и раньше. | |
PECL mongo 1.0.7 | MongoCollection::count | Добавлены limit и skip как второй и третий параметр соотвественно |
PECL mongo 1.0.5 | MongoCollection::batchInsert | Добавлен параметр options. |
MongoCollection::ensureIndex | Добавлена опция "name" для переопределения создания имени индекса. | |
MongoCollection::remove | Второй парамент теперь принимает массив опция. До версии 1.0.5 второй параметр принимал логическое значение, устанавливавшее опцию "safe". | |
MongoCollection::save | Добавлен параметр options. | |
MongoCollection::update | Добавлена опция "safe". | |
PECL mongo 1.0.2 | MongoClient::__construct | Изменен конструктор, чтобы принимать массив опций. До версии 1.0.2 конструктор принимал следующие параметры: server Имя сервера. connect Необязательный логический параметр, указывающий, должен ли конструктор подключаться к базе данных перед возвратом. По умолчанию true. persistent Если соединение должно быть постоянным. paired Если соединение должно быть сопряжено. |
MongoCollection::ensureIndex | Изменен параметр options с логического на массив. До версии 1.0.2 вторым параметром было необязательное логическое значение, указывающее уникальный индекс. | |
MongoCollection::insert | Изменен второй параметр, чтобы он был массивом опций. До версии 1.0.2 вторым параметром был логический параметр, указывающий "safe" параметр. | |
PECL mongo 1.0.1 | MongoCollection::insert | Выдает исключение MongoCursorException, если установлена опция "safe" и вставка завершается неудачно. |
MongoCollection::update | Изменен параметр options с логического на массив. До версии 1.0.1 вторым параметром было необязательное логическое значение, определяющее слияние. |