2013-02-06 3 views
1

mongodb를 사용하여 프로젝트를 수행하고 있습니다. 그래서 여기서 db를 생성하기 위해 별도의 함수를 작성했습니다. 이 코드는 내 코드생성 된 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(); 

이지만 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(); 

이 표시됩니다. 왜 제발 도와주세요. 당신은 당신이 데이터베이스를 작성하지 않는

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

을 말할 때

+0

Crossphire Development의 답변은 정확합니다. – acm

+0

@acm 의견을 보내 주셔서 감사합니다. 사실 db, drop db, 현명한 컬렉션 추가 등의 기능을 별도로 작성했습니다. 그래서 db를 생성 한 후에 생각해 보겠습니다. DB에 콜렉션을 추가하려고합니다. (데이터베이스가 존재하지 않습니다.) – user2047701

답변

1

, 당신은 데이터베이스에 액세스 할 수있는 개체를 만들 수 있습니다. 데이터베이스가 존재한다는 의미는 아니며, 데이터베이스에 액세스 할 수있는 개체가 있다는 것입니다. 따라서 기본적으로 "내 전화를 처리 할 데이터베이스 개체를 만들고 $ db_name을 (를) 선택하고 싶습니다."라고 말했지만 그 모든 일이 일어났습니다. 데이터베이스는 무언가를 입력하거나 작업을 수행 할 때까지 존재하지 않습니다.

+0

여러분의 의견에 감사드립니다. 실제로 db를 생성하기 위해 여러 함수를 씁니다. db를 drop하고 현명한 콜렉션을 추가하십시오. 그래서 db를 생성 한 후에 db에 콜렉션을 추가하려고하면 위의 문제를 피할 수있다. – user2047701

관련 문제