PHP 로 MONGODB 의 기본 동작 구현

6298 단어 직장레저

PHP 로 MONGODB 의 기본 동작 구현
phop 연 mongoDB 하면 phop 의 공식 매 뉴 얼 을 먼저 소개 해 야 합 니 다. 사이트 주 소 는:http://us.php.net/manual/en/book.mongo.php
php 의 mongo 확장 에서 4 가지 인터페이스 (대상) 를 제공 합 니 다.
1, mongoDB 연결 에 대한 동작: Mongo
http://us.php.net/manual/en/class.mongo.php
2, mongoDB 의 데이터베이스 조작: MongoDB
http://us.php.net/manual/en/class.mongodb.php
3, MongoDB 의 collection 에 대한 동작: MongoCollection
http://us.php.net/manual/en/class.mongocollection.php
4, 검색 결과 집합 에 대한 동작: MongoCursor
http://us.php.net/manual/en/class.mongocursor.php
mongoDB 와 연결 하기:
직접 예화 mongo 클래스 + 연결 만 들 기:
$mo = new Mongo();//Mongo 연결 대상 받 기
하나의 Mongo 류 를 예화 하고 기본 localhost: 27017 포트 의 MongoDB 와 연결 합 니 다.
다른 호스트 에 연결 하려 면 이렇게 쓸 수 있 습 니 다.
다른 방식 으로 mongo 류 를 예화 하고 수 동 으로 연결 을 만 듭 니 다.$mongo = new Mongo("mongodb://username:[email protected]:12345");
$mongo->connect();//연결 만 들 기
Mongo 클래스 에서 유용 한 방법:
Mongo::listDBs()
http://us.php.net/manual/en/mongo.listdbs.php
현재 mongo 서비스의 라 이브 러 리 (DB) 정 보 를 포함 하 는 배열 을 되 돌려 줍 니 다.
$mo = new Mongo();
$dbs = $mo->listDBs();//db 정 보 를 포함 하 는 배열 을 가 져 옵 니 다.
Mongo::selectCollection($db,$coll)
http://us.php.net/manual/en/mongo.selectcollection.php
현재 연 결 된 db 의 collection 대상 을 되 돌려 줍 니 다.
$mo = new Mongo();
$coll = $mo->selectCollection(’db’,'mycoll’);//collection 대상 얻 기
 
원 하 는 데이터베이스 선택 (Mongo 클래스):
한 가지 방식:
http://us.php.net/manual/en/mongo.get.php
$mongo = new Mongo();
$db = $mongo->foo;//MongoDB 상 대 를 받 았 습 니 다.
다른 방식:
http://us.php.net/manual/en/mongo.selectdb.php
$mongo = new Mongo();
$db = $mongo->selectDB(’foo’);//MongoDB 상 대 를 받 았 습 니 다.
MongoDB 에서 유용 한 함수:
MongoDB 대상 만 들 기
http://us.php.net/manual/en/mongodb.construct.php
$mo = new Mongo();
$db = new MongoDB($mo,’dbname’);//생 성 을 통 해 MongoDB 대상 을 획득 합 니 다.
현재 DB 삭제
http://us.php.net/manual/en/mongodb.drop.php
$db = $mo->dbname;
$db->drop();
현재 데이터베이스 이름 가 져 오기
http://us.php.net/manual/en/mongodb.–tostring.php
$db = $mo->dbname;
$db->_tostring();
원 하 는 collection 선택:
A:
$mo = new Mongo();
$coll = $mo->dbname->collname;//collection 대상 가 져 오기
B:
$db = $mo->selectDB(’dbname’);
$coll = $db->collname;
C:
$db = $mo->dbname;
$coll = $db->selectCollectoin(’collname’);//collection 대상 가 져 오기
데이터 삽입 (MongoCollection 대상):
http://us.php.net/manual/en/mongocollection.insert.php
MongoCollection::insert(array $a,array $options)
array $a 가 삽입 할 배열
array $options 옵션
safe 작업 결과 정보 되 돌 릴 지 여부
fsync 물리 하 드 디스크 에 직접 삽입 할 지 여부
규칙:
$coll = $mo->db->foo;
$a = array(’a'=>’b');
$options = array(’safe’=>true);
$rs  =$coll->insert($a,$options);
$rs 는 array 형 배열 로 조작 정 보 를 포함 합 니 다.
데이터베이스 에 있 는 기록 삭제 (MongoCollection 대상):
http://us.php.net/manual/en/mongocollection.remove.php
MongoCollection::remove(array $criteria,array $options)
array $criteria  조건.
array $options 옵션
safe 작업 결과 되 돌 릴 지 여부
fsync 가 물리 하 드 디스크 에 직접적인 영향 을 미 치 는 지 여부
justOne 은 하나의 기록 에 만 영향 을 줍 니까?
규칙:
$coll = $mo->db->coll;
$c = array(’a'=>1,’s’=>array(’$lt’=>100));
$options = array(’safe’=>true);
$rs = $coll->remove($c,$options);
$rs 는 array 형 배열 로 조작 정 보 를 포함 합 니 다.
데이터베이스 에 있 는 기록 업데이트 (MongoCollection 대상):
http://us.php.net/manual/en/mongocollection.update.php
MongoCollection::update(array $criceria,array $newobj,array $options)
array $criteria  조건.
array $newobj 업데이트 할 내용
array $options 옵션
safe 작업 결과 되 돌 릴 지 여부
fsync 가 물리 하 드 디스크 에 직접적인 영향 을 미 치 는 지 여부
upsert 일치 하 는 데이터 없 이 새 것 을 추가 하 시 겠 습 니까?
multiple 조건 에 맞 는 모든 기록 에 영향 을 미 칠 지 여 부 는 기본적으로 한 가지 만 영향 을 줍 니 다.
규칙:
$coll = $mo->db->coll;
$c = array(’a'=>1,’s’=>array(’$lt’=>100));
$newobj = array(’e'=>’f',’x'=>’y');
$options = array(’safe’=>true,’multiple’=>true);
$rs = $coll->remove($c,$newobj,$options);
$rs 는 array 형 배열 로 조작 정 보 를 포함 합 니 다.
collection 조회 시 단일 기록 획득 (MongoCollection 클래스):
http://us.php.net/manual/en/mongocollection.findone.php
array MongoCollection::findOne(array $query,array $fields)
array $query 조건
array $fields 에서 얻 을 필드
규칙:
$coll = $mo->db->coll;
$query = array(’s’=>array(’$lt’=>100));
$fields = array(’a'=>true,’b'=>true);
$rs = $coll->findOne($query,$fields);
결과 가 있 으 면 array 를 되 돌려 주 고 결과 가 없 으 면 NULL 을 되 돌려 줍 니 다.
컬 렉 션 을 조회 하여 여러 개의 기록 획득 (MongoCollection 클래스):
http://us.php.net/manual/en/mongocollection.find.php
MongoCursor MongoCollection::find(array $query,array $fields)
array $query 조건
array $fields 에서 얻 을 필드
규칙:
$coll = $mo->db->coll;
$query = array(’s’=>array(’$lt’=>100));
$fields = array(’a'=>true,’b'=>true);
$cursor = $coll->find($query,$fields);
커서 기록 대상 MongoCursor 를 되 돌려 줍 니 다.
커서 대상 MongoCursor 에 대한 동작 (MongoCursor 클래스):
http://us.php.net/manual/en/class.mongocursor.php
순환 또는 결과 기록:
$cursor = $coll->find($query,$fields);
while($cursor->hasNext()){
$r = $cursor->getNext();
var_dump($r);
}
혹은
$cursor = $coll->find($query,$fields);
foreache($cursor as $k=>$v){
var_dump($v);
}
혹은
$cursor = $coll->find($query,$fields);
$array= iterator_to_array($cursor);
한 피의 교훈:
http://us.php.net/manual/en/mongocursor.snapshot.php
상세 하 게 보다 변화 하 는 MongDB 결과 집
우리 가 find () 작업 을 해서 $cursor 커서 를 얻 은 후에 도 이 커서 는 동적 입 니 다. 즉, 내 가 커서 를 얻 고 내 가 순환 작업 을 해서 해당 하 는 기록 을 완성 하 는 과정 에서 기본 적 인 상황 에서 조건 에 맞 는 기록 이 증가 하면 결과 집합 도 자동 으로 증가 합 니 다.다시 말 하면 내 find () 이후 커서 순환 이 완 료 될 때 까지 조건 에 맞 는 기록 이 collection 에 삽입 되면 이 기록 들 도 $cursor 에 의 해 얻 을 수 있 습 니 다.
$cursor 를 얻 은 후의 결과 집합 이 변 하지 않 으 려 면 이렇게 해 야 합 니 다:
$cursor = $coll->find($query,$fields);
$cursor->snapshot();
foreache($cursor as $k=>$v){
var_dump($v);
}

좋은 웹페이지 즐겨찾기