mongodb — PHP вставить документ mLab

Я новичок в mLab и пытаюсь вставить такие же простые документы в мой mongodb на mLab. Прежде всего я смог вставить некоторые документы в базу данных с помощью оболочки (командной строки) каждый раз, когда я запускаю код, я получаю эту ошибку:

Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException:
No suitable servers found (`serverSelectionTryOnce` set): [connection timeout calling ismaster on 'ds157390.mlab.com:57390'] in C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php:726
Stack trace: #0 C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php(726): MongoDB\Driver\Manager->selectServer(Object(MongoDB\Driver\ReadPreference))
#1 C:\xampp\htdocs\MongoDB\azureConnect.php(46): MongoDB\Collection->insertMany(Array) #2 {main} thrown in C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php on line 726

PHP-код:

<?php

ini_set('max_execution_time', 0);

require 'vendor/autoload.php';

$seedData = array(
array(
'decade' => '1970s',
'artist' => 'Debby Boone',
'song' => 'You Light Up My Life',
'weeksAtOne' => 10
),
array(
'decade' => '1980s',
'artist' => 'Olivia Newton-John',
'song' => 'Physical',
'weeksAtOne' => 10
),
array(
'decade' => '1990s',
'artist' => 'Mariah Carey',
'song' => 'One Sweet Day',
'weeksAtOne' => 16
),
);

$uname = "test";
$pword = "test";
$uri = "mongodb://".$uname.":".$pword."@ds157390.mlab.com:57390/data4estate";

$conn = new MongoDB\Client($uri);

$songs = $conn->data4estate->songs;

$songs->insertMany($seedData);

0

Решение

Попробуйте следовать инструкции для тайм-аута соединения:

https://blog.mlab.com/2013/10/do-you-want-a-timeout/

Попробуйте установить опцию тайм-аута для строки подключения
https://docs.mongodb.com/manual/reference/connection-string/#uri.connectTimeoutMS

$uri = "mongodb://".$uname.":".$pword."@ds157390.mlab.com:57390/data4estate?connectTimeoutMS=300000";

Вы можете установить socketTimeoutMS на php MongoClient, как ответили здесь:
Драйвер PHP MongoDb: Как установить тайм-аут для выполнения кода

0

Другие решения

Я новичок в mLab и пытаюсь вставить такие же простые документы в мой mongodb на mLab. Прежде всего я смог вставить некоторые документы в базу данных с помощью оболочки (командной строки) каждый раз, когда я запускаю код, я получаю эту ошибку:

Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException:
No suitable servers found (`serverSelectionTryOnce` set): [connection timeout calling ismaster on 'ds157390.mlab.com:57390'] in C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php:726
Stack trace: #0 C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php(726): MongoDB\Driver\Manager->selectServer(Object(MongoDB\Driver\ReadPreference))
#1 C:\xampp\htdocs\MongoDB\azureConnect.php(46): MongoDB\Collection->insertMany(Array) #2 {main} thrown in C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php on line 726

PHP-код:

<?php

ini_set('max_execution_time', 0);

require 'vendor/autoload.php';

$seedData = array(
array(
'decade' => '1970s',
'artist' => 'Debby Boone',
'song' => 'You Light Up My Life',
'weeksAtOne' => 10
),
array(
'decade' => '1980s',
'artist' => 'Olivia Newton-John',
'song' => 'Physical',
'weeksAtOne' => 10
),
array(
'decade' => '1990s',
'artist' => 'Mariah Carey',
'song' => 'One Sweet Day',
'weeksAtOne' => 16
),
);

$uname = "test";
$pword = "test";
$uri = "mongodb://".$uname.":".$pword."@ds157390.mlab.com:57390/data4estate";

$conn = new MongoDB\Client($uri);

$songs = $conn->data4estate->songs;

$songs->insertMany($seedData);
0

Попробуйте следовать инструкции для тайм-аута соединения:

https://blog.mlab.com/2013/10/do-you-want-a-timeout/

Попробуйте установить опцию тайм-аута для строки подключения
https://docs.mongodb.com/manual/reference/connection-string/#uri.connectTimeoutMS

$uri = "mongodb://".$uname.":".$pword."@ds157390.mlab.com:57390/data4estate?connectTimeoutMS=300000";

Вы можете установить socketTimeoutMS на php MongoClient, как ответили здесь:
Драйвер PHP MongoDb: Как установить тайм-аут для выполнения кода

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
0
По вопросам рекламы [email protected]