mirror of
https://github.com/macintoshplus/mongo-php-driver.git
synced 2026-03-30 21:02:08 +02:00
Execute options are now parsed via php_array functions, which makes the options case-sensitive. A helper function is now used to convert legacy options for the original three execute methods into an array. This simplifies option parsing in php_phongo.c. Additionally, Manager methods now perform their own server selection, which means that execute functions in php_phongo.c can rely on a server_id being provided. Tests have been updated to expect a serverId option when relevant (e.g. query opts). Additionally, error tests for execute methods have been improved so that invalid values for all known options are tested.
91 lines
1.8 KiB
PHP
91 lines
1.8 KiB
PHP
--TEST--
|
|
MongoDB\Driver\Manager::executeQuery() one document (find command)
|
|
--SKIPIF--
|
|
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
|
|
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
|
|
--FILE--
|
|
<?php
|
|
require_once __DIR__ . "/../utils/basic.inc";
|
|
|
|
$manager = new MongoDB\Driver\Manager(STANDALONE);
|
|
|
|
// load fixtures for test
|
|
$bulk = new MongoDB\Driver\BulkWrite();
|
|
$bulk->insert(array('_id' => 1, 'x' => 2, 'y' => 3));
|
|
$bulk->insert(array('_id' => 2, 'x' => 3, 'y' => 4));
|
|
$bulk->insert(array('_id' => 3, 'x' => 4, 'y' => 5));
|
|
$manager->executeBulkWrite(NS, $bulk);
|
|
|
|
$query = new MongoDB\Driver\Query(array('x' => 3), array('projection' => array('y' => 1)));
|
|
$qr = $manager->executeQuery(NS, $query);
|
|
|
|
var_dump($qr instanceof MongoDB\Driver\Cursor);
|
|
var_dump($qr);
|
|
|
|
$server = $qr->getServer();
|
|
|
|
var_dump($server instanceof MongoDB\Driver\Server);
|
|
var_dump($server->getHost());
|
|
var_dump($server->getPort());
|
|
|
|
var_dump(iterator_to_array($qr));
|
|
|
|
?>
|
|
===DONE===
|
|
<?php exit(0); ?>
|
|
--EXPECTF--
|
|
bool(true)
|
|
object(MongoDB\Driver\Cursor)#%d (%d) {
|
|
["database"]=>
|
|
string(6) "phongo"
|
|
["collection"]=>
|
|
string(32) "manager_manager_executeQuery_002"
|
|
["query"]=>
|
|
object(MongoDB\Driver\Query)#%d (%d) {
|
|
["filter"]=>
|
|
object(stdClass)#%d (%d) {
|
|
["x"]=>
|
|
int(3)
|
|
}
|
|
["options"]=>
|
|
object(stdClass)#%d (%d) {
|
|
["projection"]=>
|
|
object(stdClass)#%d (%d) {
|
|
["y"]=>
|
|
int(1)
|
|
}
|
|
["serverId"]=>
|
|
int(%d)
|
|
}
|
|
["readConcern"]=>
|
|
NULL
|
|
}
|
|
["command"]=>
|
|
NULL
|
|
["readPreference"]=>
|
|
NULL
|
|
["isDead"]=>
|
|
bool(false)
|
|
["currentIndex"]=>
|
|
int(0)
|
|
["currentDocument"]=>
|
|
NULL
|
|
["server"]=>
|
|
object(MongoDB\Driver\Server)#%d (%d) {
|
|
%a
|
|
}
|
|
}
|
|
bool(true)
|
|
string(%d) "%s"
|
|
int(%d)
|
|
array(1) {
|
|
[0]=>
|
|
object(stdClass)#%d (2) {
|
|
["_id"]=>
|
|
int(2)
|
|
["y"]=>
|
|
int(4)
|
|
}
|
|
}
|
|
===DONE===
|