php 에서 mongodb 데이터 읽기, 쓰기, 갱신, 삭제하기 (select, insert, update, delete)
아래 코드는 PHP 7.2 에서 MongoDB 4.4.0 에서 확인 되었습니다.
참조 : http://zetcode.com/db/mongodbphp/
> MongoDB 설치에서 부터 PHP 연동을 위한 모듈 설치, 설정.
그리고 데이터 입출력에 관한 간단한 소스가 예제로 잘 작성 되어 있습니다.
1. Insert
<?php try { $mng = new MongoDB\Driver\Manager("mongodb://127.0.0.1:27017"); $bulk = new MongoDB\Driver\BulkWrite; $doc = ['_id' => new MongoDB\BSON\ObjectID, 'Name' => "CDH", 'City' => "Seoul"]; $bulk->insert($doc); $mng->executeBulkWrite('site.member', $bulk); } catch (MongoDB\Driver\Exception\Exception $e) { $filename = basename(__FILE__); echo "The $filename script has experienced an error.\n"; echo "It failed with the following exception:\n"; echo "Exception:", $e->getMessage(), "\n"; echo "In file:", $e->getFile(), "\n"; echo "On line:", $e->getLine(), "\n"; } ?> |
* site 는 컬렉션 명, member 는 도큐멘트 명입니다.
2. Select
<?php try { $mng = new MongoDB\Driver\Manager("mongodb://127.0.0.1:27017"); $filter = [ 'Name' => 'CDH' ]; // 조건 (완전 일치) //$filter = [ 'Name' => array('$regex' => 'C') ]; // 조건 (포함) $query = new MongoDB\Driver\Query($filter); //$query = new MongoDB\Driver\Query([]); // 조건 없이 전체 조회 $rows = $mng->executeQuery("site.member", $query); foreach ($rows as $row) { // 데이터가 있는대로 반복해서 가져온다. echo "이름은 $row->Name 이고, 도시는 $row->City 입니다."; } } catch ...... ?> |
* 생략된 catch 부분은 Insert 예제와 동일
* 개수 제한 또는 정렬 필요시 filter 아래에 options 추가
$options = [
'limit' => 50,
'sort' => ['Date' => -1]
];
$query = new MongoDB\Driver\Query($filter, $options);
3. Update
<?php try { $mng = new MongoDB\Driver\Manager("mongodb://127.0.0.1:27017"); //$filter = [ 'Name' => "CDH", 'City' => "Seoul" ]; $bulk = new MongoDB\Driver\BulkWrite; $bulk->update( ['Name' => "CDH", 'City' => "Seoul"], // 조건 (이렇게 직접 입력하거나 위의 $filter 활용) ['$set' => ['Name' => "JJE", 'City' => "Busan"]], // 변경값 ['multi' => True] // 여러개 동시 수정할 경우 ); $mng->executeBulkWrite('site.member', $bulk); } catch ...... ?> |
* 생략된 catch 부분은 Insert 예제와 동일
4. Delete
<?php try { $mng = new MongoDB\Driver\Manager("mongodb://127.0.0.1:27017"); $bulk = new MongoDB\Driver\BulkWrite; $bulk->delete(['Name' => "CDH"], ['City' => "Seoul"]); // 조건 $mng->executeBulkWrite('site.member', $bulk); } catch ...... ?> |
* 생략된 catch 부분은 Insert 예제와 동일
'프로그래밍 > PHP' 카테고리의 다른 글
cp949 형태의 문자를 utf-8 로 변환하기 (0) | 2020.06.04 |
---|---|
php 소스에서 오류 메세지 출력하지 않기 (0) | 2020.06.03 |
php 7.x 에서 mongodb 연결하기 (CentOS 8) (0) | 2020.05.13 |
php 코드로 json 형태로 출력하기 (0) | 2019.10.30 |
FOPEN, 파일 읽고 쓰기, 첨부하기의 스펙과 예제 (0) | 2019.04.02 |