PHP mongodb操作

22242 ワード

<?php

/**

* PHP  MongoDB    

*/

//*************************

//**     MongoDB     **//

//*************************

//  =>(“mongodb://   :   @  :  /       ”,  )

$conn = new Mongo();

//     

//$conn=new Mongo(); #      ,    .

//$conn=new Mongo(“172.21.15.69″); #      

//$conn=new Mongo(“xiaocai.loc:10086″); #          

//$conn=new Mongo(“xiaocai.loc”,array(“replicaSet”=>true)); #    

//$conn=new Mongo(“xiaocai.loc”,array(“persist”=>”t”)); #    

//$conn=new Mongo(“mongodb://sa:123@localhost”); #      

//$conn=new Mongo(“mongodb://localhost:27017,localhost:27018″); #       

//$conn=new Mongo(“mongodb:///tmp/mongo-27017.sock”); #    

//$conn=new Mongo(“mongodb://admin_miss:miss@localhost:27017/test”,array(‘persist’=>’p',”replicaSet”=>true)); #  

//    :http://www.php.net/manual/en/mongo.connecting.php

//*************************

//**              **//

//*************************

$db=$conn->mydb; #  mydb   

//$db=$conn->selectDB(“mydb”); #     

$collection=$db->column; #    (  ’ ’)

//$collection=$db->selectCollection(‘column’); #     

//$collection=$conn->mydb->column; #      

//  :1.             ,              .

//   2.     ,                 (         ).

//*************************

//**            **//

//*************************

//**        ,  bool        . **/

$array=array(‘column_name’=>’col’.rand(100,999),’column_exp’=>’xiaocai’);

$result=$collection->insert($array); #    

echo “   ID:”.$array['_id']; #MongoDB         

var_dump($result); #  :bool(true)

//**          ,      (  ). **/

$array=array(‘column_name’=>’col’.rand(100,999),’column_exp’=>’xiaocai2′);

$result=$collection->insert($array,true); #    MongoDB    ,        .(                   )

echo “   ID:”.$array['_id']; #MongoDB         

var_dump($result); #  :array(3) { ["err"]=> NULL ["n"]=> int(0) ["ok"]=> float(1) }

//**      **/

#insert($array,array(‘safe’=>false,’fsync’=>false,’timeout’=>10000))

/*

* *

*     :insert ( array $a [, array $options = array() ] )

*    insert(array(),array(‘safe’=>false,’fsync’=>false,’timeout’=>10000))

*         :safe:  false,      

*   fsync:  false,            

*     timeout:    (  )

*

*     :{ “_id” : ObjectId(“4d63552ad549a02c01000009″), “column_name” : “col770″, “column_exp” : “xiaocai” }

*    ’_id’     ,    MongoDB    .

*

*      :1.             (   _id),        。

*         $collection->insert(array(‘column_name’=>’xiaocai’));

*         $collection->insert(array(‘column_name’=>’xiaocai’));

*       

* $collection->insert(array(‘column_name’=>’xiaocai’),true);

* try {

*      $collection->insert(array(‘column_name’=>’xiaocai’),true);

* }catch(MongoCursorException $e){

*      echo “Can’t save the same person twice!
”; * } * * :http://www.php.net/manual/zh/mongocollection.insert.php * *
*/ //************************* //** **// //************************* //** **/ $where=array(‘column_name’=>’col123′); $newdata=array(‘column_exp’=>’GGGGGGG’,'column_fid’=>444); $result=$collection->update($where,array(‘$set’=>$newdata)); #$set: , $pull $pullAll $pop $inc, /* * : * * {“_id”:ObjectId(“4d635ba2d549a02801000003″),”column_name”:”col123″,”column_exp”:”xiaocai”} * * {“_id”:ObjectId(“4d635ba2d549a02801000003″),”column_name”:”col123″,”column_exp”:”GGGGGGG”,”column_fid”:444} */ //** **/ $where=array(‘column_name’=>’col709′); $newdata=array(‘column_exp’=>’HHHHHHHHH’,'column_fid’=>123); $result=$collection->update($where,$newdata); /* * : * * {“_id”:ObjectId(“4d635ba2d549a02801000003″),”column_name”:”col709″,”column_exp”:”xiaocai”} * * {“_id”:ObjectId(“4d635ba2d549a02801000003″),”column_exp”:”HHHHHHHHH”,”column_fid”:123} */ //** **/ $where=array(‘column_name’=>’col’); $newdata=array(‘column_exp’=>’multiple’,’91u’=>684435); $result=$collection->update($where,array(‘$set’=>$newdata),array(‘multiple’=>true)); /** * ’column_name’='col’ */ //** **/ $where=array(’91u’=>684435); $newdata=array(‘column_exp’=>’edit’); $result=$collection->update($where,array(‘$set’=>$newdata,’$inc’=>array(’91u’=>-5))); /** * 91u=684435 , 91u 5 */ /** **/ $where=array(‘column_name’=>’col685′); $result=$collection->update($where,array(‘$unset’=>’column_exp’)); /** * column_exp */ /* * * * :update(array $criteria, array $newobj [, array $options = array() ] ) * :1. * 2. array(’91u’=>’684435′) array(’91u’=>684435) * :http://www.mongodb.org/display/DOCS/Updating#Updating-%24bit * * */ //************************* //** **// //************************* /** **/ $collection->remove(array(‘column_name’=>’col399′)); //$collection->remove(); # /** MongoId **/ $id = new MongoId(“4d638ea1d549a02801000011″); $collection->remove(array(‘_id’=>(object)$id)); /* * * * {“_id”:ObjectId(“4d638ea1d549a02801000011″)}, 、 * $id = new MongoId(“4d638ea1d549a02801000011″); * array(‘_id’=>(object)$id) * * */ //************************* //** **// //************************* /** **/ echocount:’.$collection->count().”<br>”; # echocount:’.$collection->count(array(‘type’=>’user’)).”<br>”; # echocount:’.$collection->count(array(‘age’=>array(‘$gt’=>50,’$lte’=>74))).”<br>”; # 50 74 echocount:’.$collection->find()->limit(5)->skip(0)->count(true).”<br>”; # /** * :$gt 、$gte 、$lt 、$lte 、$ne 、$exists */ /** **/ $cursor = $collection->find()->snapshot(); foreach ($cursor as $id => $value) { echo$id: “; var_dump($value); echo “<br>”; } /** * : * find() , $cursor , . * , find() , , collection, $cursor . * $cursor , : * $cursor = $collection->find(); * $cursor->snapshot(); * http://www.bumao.com/index.php/2010/08/mongo_php_cursor.html */ /** **/ $cursor = $collection->findOne(); /** * :findOne() snapshot(),fields() ; */ /** age,type **/ $cursor = $collection->find()->fields(array(“age”=>false,”type”=>false)); /** user **/ $cursor = $collection->find()->fields(array(“user”=>true)); /** * :$cursor->fields(array(“age”=>true,”type”=>false)); */ /** ( type,age ) and age!=0 and age<50 **/ $where=array(‘type’=>array(‘$exists’=>true),’age’=>array(‘$ne’=>0,’$lt’=>50,’$exists’=>true)); $cursor = $collection->find($where); /** **/ $cursor = $collection->find()->limit(5)->skip(0); /** **/ $cursor = $collection->find()->sort(array(‘age’=>-1,’type’=>1)); ##1 -1 , /** **/ $collection->ensureIndex(array(‘age’ => 1,’type’=>-1)); #1 -1 $collection->ensureIndex(array(‘age’ => 1,’type’=>-1),array(‘background’=>true)); # ( ) $collection->ensureIndex(array(‘age’ => 1,’type’=>-1),array(‘unique’=>true)); # /** * ensureIndex (array(),array(‘name’=>’ ’,'background’=true,’unique’=true)) * :http://www.php.net/manual/en/mongocollection.ensureindex.php */ /** **/ $cursor = $collection->find(); $array=array(); foreach ($cursor as $id => $value) { $array[]=$value; } //************************* //** **// //************************* // … $conn->close(); # /* MongoDB MySql : CREATE TABLE IF NOT EXISTS `column`( `column_id` int(16) NOT NULL auto_increment COMMENT ‘ ’, `column_name` varchar(32) NOT NULL COMMENT ‘ ’, PRIMARY KEY (`column_id`) ); CREATE TABLE IF NOT EXISTS `article`( `article_id` int(16) NOT NULL auto_increment COMMENT ‘ ’, `article_caption` varchar(15) NOT NULL COMMENT ‘ ’, PRIMARY KEY(`article_id`) ); CREATE TABLE IF NOT EXISTS `article_body`( `article_id` int(16) NOT NULL COMMENT ‘article.article_id’, `body` text COMMENT ‘ ’ ); MongoDB : $data=array( ‘column_name’ =>’default’, ‘article’ =>array( ‘article_caption’ => ‘xiaocai’, ‘body’ => ‘xxxxxxxxxx…’ ) ); $inc , N; , N array(’a’=>1,’b’=>’t’), a 5, : $coll->update( array(’b’=>’t’), array(’$inc’=>array(’a’=>5)), ) $set array(’a’=>1,’b’=>’t’),b f, : $coll->update( array(’a’=>1), array(’$set’=>array(’b’=>’f’)), ) $unset array(’a’=>1,’b’=>’t’), b , : $coll->update( array(’a’=>1), array(’$unset’=>’b’), ) $push , ; , , ; , 。 array(’a’=>array(0=>’haha’),’b’=& gt;1), a, : $coll->update( array(’b’=>1), array(’$push’=>array(’a’=>’wow’)), ) , :array(’a’=>array(0=>’haha’,1=>’wow’),’b’=>1) $pushAll $push , $addToSet , array(’a’=>array(0=& gt;’haha’),’b’=>1), a, : $coll->update( array(’b’=>1), array(’$addToSet’=>array(’a’=>’wow’)), ) a wow, , , item——wow。 $pop array(’a’=>array(0=>’haha’,1=& gt;’wow’),’b’=>1) : $coll->update( array(’b’=>1), array(’$pop=>array(’a’=>1)), ) $coll->update( array(’b’=>1), array(’$pop=>array(’a’=>-1)), ) $pull , value , , 。 array(’a’=>array(0=>’haha’,1=>’wow’),’b’=>1), a value haha : $coll->update( array(’b’=>1), array(’$pull=>array(’a’=>’haha’)), ) : array(’a’=>array(0=>’wow’),’b’=>1) $pullAll $pull , 。 */ ?>