php에서 몽고db를 연동하기 위해서는 버전에 따라서 설치하는 라이브러리가 조금 상이하다.
php7버전때와 php7이하 버전때의 사용법이 다르다.
윈도우계열에서의 설치는 .dll파일을 받으면 되는데 이상하게도 받은 파일이 잘 동작을 안해서 어려웠던 것 같다.
리눅스 계열에서는 아래 명령어로 설치가 쉽게 가능 하였다.
물론 pecl 버전확인과 해당 mongodb 패키지가 있는지 확인을 해 주어야 한다.
pecl install mongodb
만약 외부 네트워크와 단절된 상황이라면...설치가 쉽지 않았던 것으로 기억한다.
몽고db에서의 기본 커넥션을 담당하는 객체는 Manager라는 객체가 담당한다.
//비밀번호가 있는 경우
$manager = new MongoDB\Driver\Manager("mongodb://아이디:비밀번호@127.0.0.1:27017/접속대상");
//비밀번호가 없는 경우
$manager = new MongoDB\Driver\Manager("mongodb://127.0.0.1:27017/접속대상");
기본적인 조회방법은 쿼리객체를 생성하고, 위에 만들어놓은 Manager를 통해서 질의하면 연관배열형태(key, value를 지닌 json형태)로 결과를 리턴하여 준다.
아래가 조회하는 방법이다.
/*
샘플 컬랙션을 아래와같이 정의하자.
test {
name : string,
name2 : string,
number : int
}
*/
//첫번째 배열 값은 질의문이다. 질의할 대상은 도큐먼트이다.
//두번째 배열 값은 옵션이다. projection, skip, limit, sort 같은 것을 줄 수 있다.
$query = new MongoDB\Driver\Query(['대상' => '내용', '대상' => '내용'], []);
$rows = $manager->executeQuery("대상db.컬렉션이름", $query);
foreach ($rows as $row) {
$result1 = $row->name; //name이라고 불리우는 것이 결과이다.
$result2 = $row->name2;
}
등록,수정,삭제도 어렵지 않다.
마찬가지로 선언한 Manager 객체에서 저장할 데이터를 연관배열형태(Json)로 넣어주면된다.
저장하는 방식은 아래처럼 이루어진다.
데이터형식도 알아서 잘 넣어주는데 기본적으로 데이터의 형식을 지정하지 않으면 문자열(string)로 저장하여준다.
$bulk = new MongoDB\Driver\BulkWrite; //저장을 담당하는 객체
$document = [ //저장할 배열
'_id' => new MongoDB\BSON\ObjectID,
'name' => '텍스트',
'number' => 1234,
'date' => date(),
'arrayStyle' => ['text' => '텍스트', 'num' => 5678]
];
$bulk->insert($document); //객체에서의 함수 실행
$manager->executeBulkWrite('대상db.컬렉션이름', $bulk); //Manager객체에 내용 전달.
성능이나 속도는 나쁘지 않았던 것 같다.
php로 몽고db랑 잘 어울리는지는 모르겠지만..
반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글