문서 지향 데이타베이스(Document Oriented Database)
몽고디비(MongoDB)를 테스트 하기 위한 PHP 소스 코드를 준비했습니다. 아래 소스 코드를 살펴보시면 PHP로 몽고디비에 접근하는 방법을 파악할 수 있습니다. 이에 대해 좀더 알아보고 싶다면
PHP 튜토리얼과
PHP 메뉴얼을 체크해보세요. 그리고 직접 테스트 해보려면
PHP 드라이버 설치를 해야 합니다. 드라이버도 설치하고 문서도 숙지해서 개발 환경을 갖추었다면 몽고디비를 실전에 응용해보는 것은 어떨까요? 거대한 자료 묶음을 빠르게 제어한다는 이 데이타베이스의 장점을 살려 위키(Wiki)나 블로그 또는 트위터 같은 소셜 네트워크 사이트를 만들어 봐도 좋은 것 같네요.
[MongoDB 테스트를 위한 소스 코드]
<?
include "Mongo/Auth.php";
$auth = new MongoAuth("192.168.10.123:27017");
$auth->login("desk", "tiger", "ti_password");
if (!$auth->loggedIn) {
echo $auth->error;
exit;
}
$coll = $auth->db->selectCollection("person.data");
$coll->drop();
if (!$coll->count()) {
$obj = array( "name" => "kim", "age" => 21 );
$coll->insert($obj);
$obj = array( "name" => "song", "age" => 18 );
$coll->insert($obj);
$obj = array( "name" => "lee", "age" => 23 );
$coll->insert($obj);
$obj = array( "name" => "han", "age" => 18 );
$coll->insert($obj);
$obj = array( "name" => "choi", "age" => 19 );
$coll->insert($obj);
$coll->ensureIndex(array('name' => 1), true);
$coll->ensureIndex(array('age' => 1), false);
$coll->deleteIndex("age");
}
$obj = array( '$set' => array("age"=>29 ) );
$coll->update(array("name"=>"choi"),$obj);
$obj = array( '$set' => array("age"=>21, "sex"=>"f", "tags"=>array()) );
$coll->update(array("name"=>"choi"),$obj);
$obj = array( '$push' => array("tags" => "game"));
$coll->update(array("name"=>"choi"),$obj);
$obj = array( '$push' => array("tags" => "movie"));
$coll->update(array("name"=>"choi"),$obj);
$obj = array( '$pushAll' => array("tags" => array("music","sports")));
$coll->update(array("name"=>"choi"),$obj);
$obj = array( '$pullAll' => array("tags" => array("music","love")));
$coll->update(array("name"=>"choi"),$obj);
$query = array('age'=>array('$gt'=>18));
$cursor = $coll->find($query)->sort(array("age"=>-1));
displayCursor($cursor);
$auth->logout();
exit;
function displayCursor($cursor){
while ($cursor->hasNext()) {
$obj = $cursor->getNext();
echo displayObject($obj);
echo "<br>\n";
}
}
function displayObject($obj){
$str = json_encode($obj);
$str = preg_replace('/"([a-z_][a-z0-9_]*)":/','<FONT color=#888888>\1</FONT>:', $str);
$str = preg_replace('/"([a-z_][a-z0-9_]*)"/','<FONT color=#cc3333>"\1"</FONT>', $str);
$str = str_replace(Array(',',':','{','}'), Array(', ',' : ','{ ',' }'), $str);
return $str;
}
?>
[MongoDB 테스트 실행 결과]
{ _id : { }, name : "lee", age : 23 }
{ _id : { }, name : "kim", age : 21 }
{ _id : { }, name : "choi", age : 21, sex : "f", tags : ["game", "movie", "sports"] }
웹프로그래머의 홈페이지 정보 블로그
http://hompy.info/587
댓글을 달아 주세요
CentOS를 사용하고 있습니다. 많은 참고가되었습니다.