InsertOneResult.php 2.68 KB
Newer Older
1
<?php
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/*
 * Copyright 2015-2017 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
 *
 * 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.
 */
17 18 19 20

namespace MongoDB;

use MongoDB\Driver\WriteResult;
21
use MongoDB\Exception\BadMethodCallException;
22 23 24 25 26 27

/**
 * Result class for a single-document insert operation.
 */
class InsertOneResult
{
28
    /** @var WriteResult */
29
    private $writeResult;
30 31

    /** @var mixed */
32
    private $insertedId;
33 34

    /** @var boolean */
35
    private $isAcknowledged;
36 37 38

    /**
     * @param WriteResult $writeResult
39
     * @param mixed       $insertedId
40
     */
41
    public function __construct(WriteResult $writeResult, $insertedId)
42 43 44
    {
        $this->writeResult = $writeResult;
        $this->insertedId = $insertedId;
45
        $this->isAcknowledged = $writeResult->isAcknowledged();
46 47 48 49 50
    }

    /**
     * Return the number of documents that were inserted.
     *
51
     * This method should only be called if the write was acknowledged.
52 53 54
     *
     * @see InsertOneResult::isAcknowledged()
     * @return integer
55
     * @throws BadMethodCallException is the write result is unacknowledged
56 57 58
     */
    public function getInsertedCount()
    {
59 60 61 62 63
        if ($this->isAcknowledged) {
            return $this->writeResult->getInsertedCount();
        }

        throw BadMethodCallException::unacknowledgedWriteResultAccess(__METHOD__);
64 65 66
    }

    /**
67
     * Return the inserted document's ID.
68
     *
69
     * If the document had an ID prior to inserting (i.e. the driver did not
70
     * need to generate an ID), this will contain its "_id". Any
71
     * driver-generated ID will be a MongoDB\BSON\ObjectId instance.
72
     *
73
     * @return mixed
74 75 76 77 78 79 80 81 82 83 84 85
     */
    public function getInsertedId()
    {
        return $this->insertedId;
    }

    /**
     * Return whether this insert was acknowledged by the server.
     *
     * If the insert was not acknowledged, other fields from the WriteResult
     * (e.g. insertedCount) will be undefined.
     *
86 87 88 89
     * If the insert was not acknowledged, other fields from the WriteResult
     * (e.g. insertedCount) will be undefined and their getter methods should
     * not be invoked.
     *
90 91 92 93 94 95 96
     * @return boolean
     */
    public function isAcknowledged()
    {
        return $this->writeResult->isAcknowledged();
    }
}