9.php中MongoD的应用详解(二)

写在前面

前面我们了解到Mongo以及MongoDB类库,他们是对数据库的一些操作,下面我们看MongoCollection类库,是针对于集合(表)的操作。


1.MongoCollection类库的使用

当我们连接Mongo后,选择数据库后,得到的就是一个集合类库了,也就是MongoCollection对象了。$Mongo = Mongo( );$MongoDB = $Mongo->selectDB("php");$MongoCollection = $MongoDB->selectCollection("blog")。那么我们今天就是使用$MongoCollection里面的一些类库,来具体的操作集合,操作文档。

我们打开手册,看看MongoCollection的类库。重要的是下面几个。

  1. public MongoCursor MongoCollection::find([ array $query = array() [, array $fields = array() ]] )
  2. public array MongoCollection::findOne([ array $query = array() [, array $fields = array() ]] )
  3. public bool|array MongoCollection::insert ( array$a [, array$options = array() ] )
  4. public bool|array MongoCollection::update ( array$criteria , array$newobj [, array$options = array() ] )
  5. public bool|array MongoCollection::remove ([ array$criteria = array() [, array$options = array() ]] )
  6. public array MongoCollection::group( mixed$keys , array$initial , MongoCode$reduce [, array$options = array() ] )
  7. public bool MongoCollection::ensureIndex( array $keys [, array $options = array() ] )
  8. public array MongoCollection::drop ( void )
  9. public int MongoCollection::count ([ array$query = array() [, int$limit = 0 [, int$skip = 0 ]]] )
  10. public array MongoCollection::deleteIndex ( string|array$keys )
  11. public array MongoCollection::deleteIndexes ( void )

下面我们针对具体的例子看看。

<?php 
/*
 * php中MongoCollection类库的使用.
 * 
 */

//连接Mongo
$mongo = new Mongo();

//选择库
$Mongodb = $mongo->selectDB("php");

//选择集合。
$MongoCollection=$Mongodb->selectCollection("blog");//选择php数据库里面的blog集合,如果不存在的话,只要插入数据,也会自动增加,返回一个MongoCollection对象。

//返回的数据可以用iterator_to_array转换成数组,便于查看。
$all = $MongoCollection->find();
$all = iterator_to_array($all);

//查找一个。
$one = $MongoCollection->findone();

//insert插入采用数组的方式,支持2维数组。
//$MongoCollection->insert(array("title"=>"联合国","content"=>"周杰伦","time"=>time()));
//$MongoCollection->insert(array("title"=>"中国","content"=>"许嵩","time"=>time(),"monky"=>array("qq"=>"we","yy"=>"22")));

//删除,也才用数组的形式,第二个参数。是每次只删除一个。
$MongoCollection->remove(array("title"=>"联合国"));
//$MongoCollection->remove(array("title"=>"联合国"),array("justOne"=>true)); 

//更新数据比较特殊,和MongoDB原生态一样,第二个参数引入了修改容器:修改数据$set,数字累加$inc,数组修改器(“$push”、“$pop”、“$pull”、“$addToSet”、“$each”)
//发现了一个问题,只支持英文,不支持中文,第一个查询的条件:
$MongoCollection->update(array("title"=>"wowowowo"),array('$set'=>array("content"=>"你妹你妹啊")));
//$MongoCollection->update(array("title"=>"wowowowo"),array('$set'=>array("age"=>"22"))); //如果没有age这一项的话,就自动添加。
//$MongoCollection->update(array("title"=>"wowowowo"),array('$inc'=>array("age"=>10)));
  
//删除集合。  
//$MongoCollection->drop();  

//count统计,返回数字、
$num = $MongoCollection->count();

//索引。成功返回true
//$do = $MongoCollection->ensureIndex(array("title"=>1),array("unique"=>true));

//删除title索引。返回一个数组。
$doo=$MongoCollection->deleteIndex("title");

//删除所有的索引.返回一个数组、
$doo = $MongoCollection->deleteIndexes();

echo "<pre>";
var_dump($doo);
echo "</pre>";
?>




你可能感兴趣的:(mongodb,数据库,PHP,Blog,iterator,query)