Я пытаюсь создать простой MongoDB и вставить некоторые данные. Я должен использовать PHP, и я запускаю код на внешнем сервере, принадлежащем моей унифицированности (для меня обязательно, на сервере все настроено). Моя проблема в том, что я использую код из учебника и все отлично работает, пока не достигнет «$list = $db->listCollections();
». Затем я получаю следующий журнал:PHP Неустранимая ошибка, MongoDB, курсор
PHP Фатальная ошибка: Uncaught исключение «MongoCursorException» с сообщением «локальный: 27017: не авторизованы для запроса на Test.mycol
Моя проблема заключается в том, что я не знаю, почему это происходит и как его решить. Какие-либо предложения?
код:
<?php
// connect to mongodb
# $m = new MongoClient();
$mongo = new Mongo();
$db = $mongo->Test;
$username="4rebacz";
$password="pass";
$db->authenticate($username, $password);
echo "Connection to database successfully";
// select a database
# $db = $m->mydb;
echo "Database mydb selected";
$collection = $db->mycol;
echo "Collection selected succsessfully";
$document = array(
"title" => "MongoDB",
"description" => "database",
"likes" => 100,
"url" => "http://www.tutorialspoint.com/mongodb/",
"by", "tutorials point"
);
$collection->insert($document);
echo "Document inserted successfully";
$cursor = $collection->find();
$str = file_get_contents('dirdata/formdata.txt');
$json = json_decode($str, true);
foreach($json as $id => $item)
{
$collection->insert($item);
}
$list = $db->listCollections();
foreach($list as $collection)
{
echo "$collection \n";
}
?>
ОК, может у меня есть еще один вопрос? Как я могу показать все записи в БД без использования ролей администрирования? –
Вы должны хотя бы знать имена всех коллекций. И текущий пользователь должен иметь права на этот сбор ... –
в противном случае используйте пользователя «admin» или добавьте права для своего пользователя –