Phalcon\Db\Adapter\MongoDB\Operation\InsertMany::execute PHP Метод

execute() публичный Метод

Execute the operation.
См. также: Executable::execute()
public execute ( MongoDB\Driver\Server $server ) : InsertManyResult
$server MongoDB\Driver\Server
Результат Phalcon\Db\Adapter\MongoDB\InsertManyResult
    public function execute(Server $server)
    {
        $options = ['ordered' => $this->options['ordered']];
        if (isset($this->options['bypassDocumentValidation']) && Functions::serverSupportsFeature($server, self::$wireVersionForDocumentLevelValidation)) {
            $options['bypassDocumentValidation'] = $this->options['bypassDocumentValidation'];
        }
        $bulk = new Bulk($options);
        $insertedIds = [];
        foreach ($this->documents as $i => $document) {
            $insertedId = $bulk->insert($document);
            if ($insertedId !== null) {
                $insertedIds[$i] = $insertedId;
            } else {
                $insertedIds[$i] = Functions::extractIdFromInsertedDocument($document);
            }
        }
        $writeConcern = isset($this->options['writeConcern']) ? $this->options['writeConcern'] : null;
        $writeResult = $server->executeBulkWrite($this->databaseName . '.' . $this->collectionName, $bulk, $writeConcern);
        return new InsertManyResult($writeResult, $insertedIds);
    }

Usage Example

Пример #1
0
 /**
  * Inserts multiple documents.
  *
  * @see InsertMany::__construct() for supported options
  * @see http://docs.mongodb.org/manual/reference/command/insert/
  *
  * @param array[]|object[] $documents The documents to insert
  * @param array            $options Command options
  *
  * @return InsertManyResult
  */
 public function insertMany(array $documents, array $options = [])
 {
     if (!isset($options['writeConcern'])) {
         $options['writeConcern'] = $this->writeConcern;
     }
     $operation = new InsertMany($this->databaseName, $this->collectionName, $documents, $options);
     $server = $this->manager->selectServer(new ReadPreference(ReadPreference::RP_PRIMARY));
     return $operation->execute($server);
 }