본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


몽고DB/php 몽고DB

Php 7.X 버전에서 몽고DB 연동 (php mongodb, php 몽고db)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 11. 22.

 

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 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글