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 — Изврши команда на базата на податоци
= NULL
$db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
Избира сервер според "readPreference" Изврши команда на базата на податоци
Овој метод не применува никаква посебна логика на командата. Стандардните вредности за "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.
|
| опција и ја извршува командата на тој сервер. |
Проследување на MongoDB\Driver\ReadPreference објект како
options е застарен и ќе биде отстранет во 2.0.
|
| на други грешки (на пр. неважечка команда). |
MongoDB\Driver\Exception\InvalidArgumentException
Како на PHP 7.1.0, "session" опцијата се користи во комбинација со непризнаен запис на загриженост.
|
| на грешки при парсирање на аргументи. |
Третиот параметар сега е options низа. За компатибилност со претходните верзии, овој параметар сè уште ќе прифаќа
MongoDB\Driver\ReadPreference object.
|
Примери
Пример #1 , што е непроменлива вредносна објект што претставува команда на базата на податоци. Командата потоа може да се изврши со PECL mongodb 1.21.0
<?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 , што е непроменлива вредносна објект што претставува команда на базата на податоци. Командата потоа може да се изврши со со команда што враќа еден документ со резултат
<?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)
}
со команда што враќа курсор
Пример #3 Ограничување на времето за извршување на команда
"maxTimeMS" во
MongoDB\Driver\Command Времето за извршување на команда може да се ограничи со специфицирање вредност за
» Прекини ги тековните операции
во прирачникот на 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]);
?>документ. Имајте предвид дека ова временско ограничување се применува на страната на серверот и не го зема предвид мрежното задоцнување. Видете MongoDB\Driver\Exception\ExecutionTimeoutException ќе биде фрлена.
Белешки
Забелешка: Ако командата не успее да заврши по една секунда време на извршување на серверот, а
readPreferenceАко се користи секундаренcommandодговорност на повикувачот е да се осигура дека
Забелешка: може да се изврши на секундарен. Возачот не врши валидација. Овој метод не користи стандардно претпочитање за читање одURI за поврзување со MongoDB PECL mongodb 1.4.4.
Види Исто така
- MongoDB\Driver\Command
- MongoDB\Driver\Cursor
- PECL mongodb 1.4.4 - Изврши команда на база на податоци што чита
- MongoDB\Driver\Manager::executeReadCommand() - Изврши команда на база на податоци што чита и пишува
- . Апликациите на кои им е потребно таквото однесување треба да размислат за користење - Изврши команда на база на податоци што пишува
- » distinct - Извршува команда на базата на податоци на овој сервер