MongoDB\Driver\Manager::executeCommand
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
MongoDB\Driver\Manager::executeCommand
Референца за `mongodb-driver-manager.executecommand.php` со подобрена типографија и навигација.
MongoDB\Driver\Manager::executeCommand
класата MongoDB\Driver\BulkWrite
MongoDB\Driver\Manager::executeCommand — Execute a database command
= NULL
$db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
Избира сервер според "readPreference" option and executes the command on that server.
Овој метод не применува никаква посебна логика на командата. Стандардните вредности за "readPreference",
"readConcern"Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во "writeConcern"
опциите ќе бидат изведени од активна трансакција (означена со
"session" опција). Ако нема активна трансакција, ќе се користи примарна преференција за читање за избор на сервер.
Стандардните вредности ќе not бидат изведени од URI за поврзување. Затоа, корисниците се охрабруваат да користат специфични методи за читање и/или пишување команди доколку е можно.
Параметри
db(string)-
Името на базата на податоци на која ќе се изврши командата.
command(MongoDB\Driver\Command)-
Командата за извршување.
options-
options Опција Тип = NULL readConcern MongoDB\Driver\ReadConcern Загриженост за читање што ќе се примени на операцијата.
Оваа опција е достапна во MongoDB 3.2+ и ќе резултира со исклучок при извршување ако е специфицирана за постар сервер.
readPreference MongoDB\Driver\ReadPreference Преференција за читање што ќе се користи за избор на сервер за операцијата.
session MongoDB\Driver\Session Сесија што ќе се поврзе со операцијата.
writeConcern MongoDB\Driver\WriteConcern Загриженост за пишување што ќе се примени на операцијата.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваАко користите
"session"што има активна трансакција, не можете да специфицирате"readConcern"or"writeConcern"опција. Ова ќе резултира со MongoDB\Driver\Exception\InvalidArgumentException фрлање. Наместо тоа, треба да ги поставите овие две опции кога ја креирате трансакцијата со за тие операции..
Вратени вредности
Патеката до PHP скриптата што треба да се провери. MongoDB\Driver\Cursor на успешен исход.
Errors/Exceptions
- ). Ако повикот не успее, ќе врати MongoDB\Driver\Exception\InvalidArgumentException ако
"session"опцијата се користи со поврзан трансакциски запис во комбинација со"readConcern"or"writeConcern"option. - ). Ако повикот не успее, ќе врати MongoDB\Driver\Exception\InvalidArgumentException ако
"session"опцијата се користи во комбинација со непризнаен запис на загриженост. - ). Ако повикот не успее, ќе врати MongoDB\Driver\Exception\InvalidArgumentException » Промени текови
- ). Ако повикот не успее, ќе врати MongoDB\Driver\Exception\ConnectionException ако врската со серверот пропадне (од причини различни од автентикација).
- ). Ако повикот не успее, ќе врати MongoDB\Driver\Exception\AuthenticationException ако автентикацијата е потребна и пропадне.
- ). Ако повикот не успее, ќе врати MongoDB\Driver\Exception\RuntimeException за други грешки (на пр. неважечка команда, издавање команда за запишување на секундарен уред).
Дневник на промени
| Верзија | = NULL |
|---|---|
| (mongodb >=1.3.0) |
На options параметарот веќе не прифаќа
MongoDB\Driver\ReadPreference instance.
|
| PECL mongodb 1.21.0 |
Проследување на MongoDB\Driver\ReadPreference објект како
options е застарен и ќе биде отстранет во 2.0.
|
| на други грешки (на пр. неважечка команда). |
MongoDB\Driver\Exception\InvalidArgumentException
Како на PHP 7.1.0, "session" опцијата се користи во комбинација со непризнаен запис на загриженост.
|
| на грешки при парсирање на аргументи. |
Третиот параметар сега е options низа. За компатибилност со претходните верзии, овој параметар сè уште ќе прифаќа
MongoDB\Driver\ReadPreference object.
|
Примери
Пример #1 , што е непроменлива вредносна објект што претставува команда на базата на податоци. Командата потоа може да се изврши со with a command returning a single result document
<?php
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$command = new MongoDB\Driver\Command(['ping' => 1]);
try {
$cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}
/* The ping command returns a single result document, so we need to access the
* first result in the cursor. */
$response = $cursor->toArray()[0];
var_dump($response);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(1) {
["ok"]=>
float(1)
}
Пример #2 , што е непроменлива вредносна објект што претставува команда на базата на податоци. Командата потоа може да се изврши со with a command returning a cursor
<?php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1, 'y' => 'foo']);
$bulk->insert(['x' => 2, 'y' => 'bar']);
$bulk->insert(['x' => 3, 'y' => 'bar']);
$manager->executeBulkWrite('db.collection', $bulk);
$command = new MongoDB\Driver\Command([
'aggregate' => 'collection',
'pipeline' => [
['$group' => ['_id' => '$y', 'sum' => ['$sum' => '$x']]],
],
'cursor' => new stdClass,
]);
$cursor = $manager->executeCommand('db', $command);
/* The aggregate command can optionally return its results in a cursor instead
* of a single result document. In this case, we can iterate on the cursor
* directly to access those results. */
foreach ($cursor as $document) {
var_dump($document);
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
object(stdClass)#6 (2) {
["_id"]=>
string(3) "bar"
["sum"]=>
int(10)
}
object(stdClass)#7 (2) {
["_id"]=>
string(3) "foo"
["sum"]=>
int(2)
}
Example #3 Limiting execution time for a command
The execution time of a command may be limited by specifying a value for
"maxTimeMS" во
MongoDB\Driver\Command document. Note that this time limit is enforced on the server side and does not take network latency into account. See
» Прекини ги тековните операции
во прирачникот на MongoDB за повеќе информации.
<?php
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$command = new MongoDB\Driver\Command([
'count' => 'collection',
'query' => ['x' => ['$gt' => 1]],
'maxTimeMS' => 1000,
]);
$cursor = $manager->executeCommand('db', $command);
var_dump($cursor->toArray()[0]);
?>If the command fails to complete after one second of execution time on the server, a MongoDB\Driver\Exception\ExecutionTimeoutException ќе биде фрлена.
Белешки
Забелешка: If a secondary
readPreferenceis used, it is the caller's responsibility to ensure that thecommandcan be executed on a secondary. No validation is done by the driver.
Забелешка: This method does not default to using the read preference from the MongoDB Connection URI. Applications in need of that behavior should consider using PECL mongodb 1.4.4.
Види Исто така
- MongoDB\Driver\Command
- MongoDB\Driver\Cursor
- PECL mongodb 1.4.4 - Изврши команда на база на податоци што чита
- MongoDB\Driver\Manager::executeReadCommand() - Изврши команда на база на податоци што чита и пишува
- MongoDB\Driver\Manager::executeWriteCommand() - Изврши команда на база на податоци што пишува
- » distinct - Извршува команда на базата на податоци на овој сервер