Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.
<?php
/*
< * Copyright 2015-2017 MongoDB, Inc.
> * Copyright 2015-present MongoDB, Inc.
* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *
< * http://www.apache.org/licenses/LICENSE-2.0
> * https://www.apache.org/licenses/LICENSE-2.0
* * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ namespace MongoDB; use MongoDB\Driver\WriteResult; use MongoDB\Exception\BadMethodCallException; /** * Result class for a bulk write operation. */ class BulkWriteResult { /** @var WriteResult */ private $writeResult;
< /** @var mixed[] */
> /** @var array */
private $insertedIds; /** @var boolean */ private $isAcknowledged;
< /** < * @param WriteResult $writeResult < * @param mixed[] $insertedIds < */
public function __construct(WriteResult $writeResult, array $insertedIds) { $this->writeResult = $writeResult; $this->insertedIds = $insertedIds; $this->isAcknowledged = $writeResult->isAcknowledged(); } /** * Return the number of documents that were deleted. * * This method should only be called if the write was acknowledged. * * @see BulkWriteResult::isAcknowledged()
< * @return integer
> * @return integer|null
* @throws BadMethodCallException is the write result is unacknowledged */ public function getDeletedCount() { if ($this->isAcknowledged) { return $this->writeResult->getDeletedCount(); } throw BadMethodCallException::unacknowledgedWriteResultAccess(__METHOD__); } /** * Return the number of documents that were inserted. * * This method should only be called if the write was acknowledged. * * @see BulkWriteResult::isAcknowledged()
< * @return integer
> * @return integer|null
* @throws BadMethodCallException is the write result is unacknowledged */ public function getInsertedCount() { if ($this->isAcknowledged) { return $this->writeResult->getInsertedCount(); } throw BadMethodCallException::unacknowledgedWriteResultAccess(__METHOD__); } /** * Return a map of the inserted documents' IDs. * * The index of each ID in the map corresponds to each document's position * in the bulk operation. If a document had an ID prior to inserting (i.e. * the driver did not generate an ID), the index will contain its "_id" * field value. Any driver-generated ID will be a MongoDB\BSON\ObjectId * instance. *
< * @return mixed[]
> * @return array
*/ public function getInsertedIds() { return $this->insertedIds; } /** * Return the number of documents that were matched by the filter. * * This method should only be called if the write was acknowledged. * * @see BulkWriteResult::isAcknowledged()
< * @return integer
> * @return integer|null
* @throws BadMethodCallException is the write result is unacknowledged */ public function getMatchedCount() { if ($this->isAcknowledged) { return $this->writeResult->getMatchedCount(); } throw BadMethodCallException::unacknowledgedWriteResultAccess(__METHOD__); } /** * Return the number of documents that were modified. * * This value is undefined (i.e. null) if the write executed as a legacy * operation instead of command. * * This method should only be called if the write was acknowledged. * * @see BulkWriteResult::isAcknowledged() * @return integer|null * @throws BadMethodCallException is the write result is unacknowledged */ public function getModifiedCount() { if ($this->isAcknowledged) { return $this->writeResult->getModifiedCount(); } throw BadMethodCallException::unacknowledgedWriteResultAccess(__METHOD__); } /** * Return the number of documents that were upserted. * * This method should only be called if the write was acknowledged. * * @see BulkWriteResult::isAcknowledged()
< * @return integer
> * @return integer|null
* @throws BadMethodCallException is the write result is unacknowledged */ public function getUpsertedCount() { if ($this->isAcknowledged) { return $this->writeResult->getUpsertedCount(); } throw BadMethodCallException::unacknowledgedWriteResultAccess(__METHOD__); } /** * Return a map of the upserted documents' IDs. * * The index of each ID in the map corresponds to each document's position * in bulk operation. If a document had an ID prior to upserting (i.e. the * server did not need to generate an ID), this will contain its "_id". Any * server-generated ID will be a MongoDB\BSON\ObjectId instance. * * This method should only be called if the write was acknowledged. * * @see BulkWriteResult::isAcknowledged()
< * @return mixed[]
> * @return array
* @throws BadMethodCallException is the write result is unacknowledged */ public function getUpsertedIds() { if ($this->isAcknowledged) { return $this->writeResult->getUpsertedIds(); } throw BadMethodCallException::unacknowledgedWriteResultAccess(__METHOD__); } /** * Return whether this update was acknowledged by the server. * * If the update was not acknowledged, other fields from the WriteResult * (e.g. matchedCount) will be undefined. * * @return boolean */ public function isAcknowledged() { return $this->isAcknowledged; } }