Phalcon\Db\Adapter\MongoDB\Functions::extractIdFromInsertedDocument PHP Method

extractIdFromInsertedDocument() public static method

This function is used when BulkWrite::insert() does not return a generated ID, which means that the ID should be fetched from an array offset, public property, or in the data returned by bsonSerialize().
See also: https://jira.mongodb.org/browse/PHPC-382
public static extractIdFromInsertedDocument ( array | object $document ) : mixed
$document array | object Inserted document
return mixed
    public static function extractIdFromInsertedDocument($document)
    {
        if ($document instanceof Serializable) {
            return self::extractIdFromInsertedDocument($document->bsonSerialize());
        }
        return is_array($document) ? $document['_id'] : $document->_id;
    }

Usage Example

Example #1
0
 /**
  * Execute the operation.
  *
  * @see Executable::execute()
  *
  * @param Server $server
  *
  * @return InsertOneResult
  */
 public function execute(Server $server)
 {
     $options = [];
     if (isset($this->options['bypassDocumentValidation']) && Functions::serverSupportsFeature($server, self::$wireVersionForDocumentLevelValidation)) {
         $options['bypassDocumentValidation'] = $this->options['bypassDocumentValidation'];
     }
     $bulk = new Bulk($options);
     $insertedId = $bulk->insert($this->document);
     if ($insertedId === null) {
         $insertedId = Functions::extractIdFromInsertedDocument($this->document);
     }
     $writeConcern = isset($this->options['writeConcern']) ? $this->options['writeConcern'] : null;
     $writeResult = $server->executeBulkWrite($this->databaseName . '.' . $this->collectionName, $bulk, $writeConcern);
     return new InsertOneResult($writeResult, $insertedId);
 }
All Usage Examples Of Phalcon\Db\Adapter\MongoDB\Functions::extractIdFromInsertedDocument