Единственный способ, которым я нашел это:
$mongo->selectDB('new_db')->createCollection('tmp_collection');
$mongo->selectDB('new_db')->dropCollection('tmp_collection');
Выполнение только $mongo->selectDB('new_db')
на самом деле не работает.
Есть идеи?
Вам нужно будет запустить хотя бы одну команду в базе данных до ее создания...
Эта команда может быть запущена до того, как вы добавите любые коллекции... чтобы вы могли просто list (несуществующие) коллекции.
<?php
$connection = new Mongo();
$db = $connection->foo;
$list = $db->listCollections();
foreach ($list as $collection) {
echo "$collection </br>";
}
?>
Теперь ваша новая база данных будет существовать, пока не создаются созданные пользователем коллекции.
Технически вам не нужно вручную создавать базы данных или коллекции в MongoDB из-за своего "ленивого" способа создания баз данных и коллекций.
Я понимаю, что вы пришли из мира SQL, это не имеет большого смысла. Возможно, вы захотите спросить себя: "Если он автоматически создает коллекцию или базу данных для меня на лету, действительно ли нужно определить ее раньше времени?"