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

来源:互联网 发布:企业大数据运营平台 编辑:程序博客网 时间:2024/05/01 02:47

写在前面

前面我们了解到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>";?>




原创粉丝点击