Я тестирую mongodb с помощью php и столкнулся с проблемой, которую я не знаю, как решить, это код, который я сейчас использую.
<?php
require ($_SERVER['DOCUMENT_ROOT'] . '/grafic/mongodb_php/vendor/autoload.php');
$client = new MongoDB\Client;
$snrdb = $client->snrdb;
$nodos_live = $snrdb->nodos_live;
$filter = [];
$options = ['sort' => ['_id' => 1], 'limit' => 1];
$show = $nodos_live->find($filter, $options);
foreach ($show as $collection) {
$snr_1= $collection["n1_snr_1"];
$snr_2= $collection["n1_snr_2"];
}
echo $snr_1 ." ";
echo $snr_2;
?>
это даетme
28,9 28,3
теперь, если я изменю идентификатор и имя коллекции на 2 и n2_snr_ * вот так.
<?php
require ($_SERVER['DOCUMENT_ROOT'] . '/grafic/mongodb_php/vendor/autoload.php');
$client = new MongoDB\Client;
$snrdb = $client->snrdb;
$nodos_live = $snrdb->nodos_live;
$filter = [];
$options = ['sort' => ['_id' => 2], 'limit' => 1];
$show = $nodos_live->find($filter, $options);
foreach ($show as $collection) {
$snr_1= $collection["n2_snr_1"];
$snr_2= $collection["n2_snr_2"];
}
echo $snr_1 ." ";
echo $snr_2;
?>
это дает мне сообщение об ошибке:
Неустранимая ошибка : Uncaught MongoDB \ Driver \ Exception \ ConnectionException: неверная спецификация сортировки в C: \ xampp \ htdocs \ grafic \ mongodb_php \ vendor \ mongodb \ mongodb \ src \ Operation \ OperationFind.php: 287 Трассировка стека: # 0 C: \ xampp \ htdocs \ grafic \ mongodb_php \ vendor \ mongodb \ mongodb \ src \ Operation \ Find.php (287): MongoDB \ Driver \ Server-> executeQuery ('snrdb.nodos_liv ... ', Object (MongoDB \ Driver \ Query), Array) # 1 C: \ xampp \ htdocs \ grafic \ mongodb_php \ vendor \ mongodb \ mongodb \ src \ Collection.php (531): MongoDB \ Operation \ Find-> execute (Object (MongoDB \ Driver \ Server)) # 2 C: \ xampp \ htdocs \ grafic \ test \ test.php (23): MongoDB \ Collection-> find (Array, Array) # 3 {main} брошенов C: \ xampp \ htdocs \ grafic \ mongodb_php \ vendor \ mongodb \ mongodb \ src \ Operation \ Find.php on line 287
И я не могу понять, почему я получаю сообщение об ошибке кому-нибудь, кто может мне помочь с этим?
Если сделать дамп, как это так
<?php
require ($_SERVER['DOCUMENT_ROOT'] . '/grafic/mongodb_php/vendor/autoload.php');
$client = new MongoDB\Client;
$snrdb = $client->snrdb;
$nodos_live = $snrdb->nodos_live;
$show = $nodos_live->findOne(
['_id' => '1']
);
var_dump($show)
?>
Я получаю это, показывая, что это документ с идентификатором 1
object(MongoDB\Model\BSONDocument)#19 (1) {
["storage":"ArrayObject":private]=>
array(5) {
["_id"]=>
string(1) "1"
["n1_snr_1"]=>
float(28.9)
["n1_snr_2"]=>
float(28.3)
["n1_snr_3"]=>
string(1) "0"
["time_stamp"]=>
string(19) "2018-05-31 21:44:22"
}
}
И то же самое, что я делаюдамп _id => 2 показывает, что он также существует.
object(MongoDB\Model\BSONDocument)#19 (1) {
["storage":"ArrayObject":private]=>
array(5) {
["_id"]=>
string(1) "2"
["n2_snr_1"]=>
float(31.7)
["n2_snr_2"]=>
float(35.7)
["n2_snr_3"]=>
string(1) "0"
["time_stamp"]=>
string(19) "2018-05-31 21:44:22"
}
}