Для установки соединения с бд mongodb используется класс MongoClient. Он позволяет подключаться к mongodb (метод connect
)
и отключаться (метод close
), а также выбирать базу данных (метод selectDB
) и коллекцию для взаимодействия
(метод selectCollection
).
Стандартное подключение:
// Подключаемся к mongodb $con = new MongoClient(); // выбираем базу данных test $con-> test;
Также выбрать базу данных мы могли, применив метод selectDB
:
$con-> selectDB(test);
Фактически это будет то же самое, как если бы устанавливали базу данных в консоли с помощью команды use test
.
После завершения работы мы можем закрыть соединение, применив метод close
. В принципе mongoDB автоматически может закрывать
неработающие соединения. Но в некоторых условиях может потребоваться явно закрыть соединение, например, чтобы сразу же установить новое подключение.
$con = new MongoClient(); $con-> test; $con-> close();
Установив бд, можно выбрать коллекцию:
// Подключаемся к mongodb $con = new MongoClient(); // выбираем базу данных test и коллекцию persons $con-> test -> persons;
Либо мы можем явным образом применить метод selectCollection
$con-> selectDB(test)-> selectCollection(persons);
В консоли mongo мы добавлять документ в коллекцию, даже если коллекции еще не существует. В этом случае она автоматически создавалась. В php то же самое. Сейчас мы подключаемся к коллекции persons. И даже если ее нет, она будет создана, если мы потом добавим в нее какие-нибудь данные.
Еще один метод, которым обладает класс MongoClient
, это метод listDBs. Он позволяет получить все базы данных в MongoDB:
$con = new MongoClient(); print_r($con-> listDBs());
Данный метод возвращает данные в формате ассоциативного массива:
Array ( [databases] => Array ( [0] => Array ( [name] => local [sizeOnDisk] => 83886080 [empty] => ) [1] => Array ( [name] => test [sizeOnDisk] => 218103808 [empty] => ) ) [totalSize] => 301989888 [ok] => 1 )
Подобным образом с помощью метода listCollections
мы можем получить все коллекции в определенной базе данных:
$con = new MongoClient(); $list= $con-> test-> listCollections(); foreach ($list as $collection) { echo "<p>" . $collection . "</p>"; }
Если мы просто хотим получить имена всех коллекций, то мы можем использовать метод getCollectionNames()
:
$con = new MongoClient(); $list= $con-> test-> getCollectionNames(); foreach ($list as $collection) { echo "<p>" . $collection . "</p>"; }