Files
mongo-php-driver/tests/manager/manager-executeReadWriteCommand-001.phpt
Jeremy Mikola 5ec48480db Use aggregate with $out in executeReadWriteCommand tests
MongoDB 4.0.x (and possibly earlier) happens to require an $out stage for aggregate if a writeConcern option would be used. While this test doesn't use a write concern, it could inherit one from MONGODB_URI.

As for findAndModify, that is only considered a write command (does not accept a readConcern option).
2020-07-29 16:44:07 -04:00

48 lines
1.3 KiB
PHP

--TEST--
MongoDB\Driver\Manager::executeReadWriteCommand()
--SKIPIF--
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
<?php skip_if_not_live(); ?>
<?php skip_if_not_clean(); ?>
<?php skip_if_server_version('<', '3.4'); /* aggregate write concern */ ?>
--FILE--
<?php
require_once __DIR__ . "/../utils/basic.inc";
require_once __DIR__ . "/../utils/observer.php";
$manager = new MongoDB\Driver\Manager(URI);
$command = new MongoDB\Driver\Command([
'aggregate' => COLLECTION_NAME,
'pipeline' => [
['$group' => ['_id' => 1]],
['$out' => COLLECTION_NAME . '.out'],
],
'cursor' => (object) [],
]);
(new CommandObserver)->observe(
function() use ($manager, $command) {
$manager->executeReadWriteCommand(
DATABASE_NAME,
$command,
[
'readConcern' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\ReadConcern::LOCAL),
'writeConcern' => new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY),
]
);
},
function(stdClass $command) {
echo "Read Concern: ", $command->readConcern->level, "\n";
echo "Write Concern: ", $command->writeConcern->w, "\n";
}
);
?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
Read Concern: local
Write Concern: majority
===DONE===