1

私はmongodbを使用してプロジェクトを行っています。そこで、ここでデータベースを作成するための個別の関数を作成しました。これは私のコードです

            $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();

しかし、データベースを作成した後、それは表示されませんでした。しかし、このようにレコードを追加すると、

            $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();

データベースが表示されます。私を助けてください理由は何ですか。

4

1 に答える 1

1

あなたが言う時

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

データベースを作成しているのではなく、データベースにアクセスできるオブジェクトを作成しています。データベースが存在する、またはデータベースが作成されるという意味ではなく、データベースにアクセスできるオブジェクトができたというだけです。つまり、基本的には「呼び出しを処理するデータベース オブジェクトを作成し、$db_name を選択したい」と言いましたが、それがすべてです。データベースは、何かを入れるか何らかのアクションを実行するまで存在しません。

于 2013-02-06T17:38:48.193 に答える