不显示创建的mongodb

时间:2013-02-06 16:50:49

标签: php mongodb

我正在使用mongodb做项目。所以在这里我写了单独的函数来创建db。这是我的代码

            $conn = new \MongoClient('mongodb://example.com:27017', array("connect" => TRUE));
            $exist_dbs = $conn->listDBs();

            foreach ($exist_dbs["databases"] as $databse) {
                if ($databse['name'] == $db_name) {
                    $is_exist = true;
                }
            }

            if (!$is_exist) {
                $db = new \MongoDB($conn, $db_name);
                $status = true;
                $msg = 'database successfully created';

            } else {
                $status = false;
                $msg = 'database already exist';
            }
            $conn->close();

但是在创建db后它没有显示。但如果我像这样添加记录,

            $conn = new \MongoClient('mongodb://example.com:27017', array("connect" => TRUE));
            $exist_dbs = $conn->listDBs();

            foreach ($exist_dbs["databases"] as $databse) {
                if ($databse['name'] == $db_name) {
                    $is_exist = true;
                }
            }

            if (!$is_exist) {
                $db = new \MongoDB($conn, $db_name);
                $status = true;
                $msg = 'database successfully created';
                //new code
                $collection = new \MongoCollection($db, 'users');
                $obj = array("name" => "Madawa", "age" => "34");
                $collection->insert($obj);
            } else {
                $status = false;
                $msg = 'database already exist';
            }
            $conn->close();

它显示了数据库。请帮帮我的原因是什么。

1 个答案:

答案 0 :(得分:1)

当你说

$db = new \MongoDB($conn, $db_name);

您没有创建数据库,而是创建可以访问数据库的对象。这并不意味着数据库确实存在或者它确实存在,只是你现在有一个能够访问它的对象。所以你基本上说“让我成为一个数据库对象来处理我的调用,我想选择$ db_name”,但就是这样。在您将数据放入其中或对其执行某些操作之前,数据库不存在。