当前位置: 首页 > 后端技术 > PHP

推荐一个php7+mongodb三方类

时间:2023-03-29 20:11:37 PHP

由于项目需要,项目升级到php7。但是升级后发现mongo扩展无法使用。PHP7.0及以上只支持mongodb扩展。mongodb扩展的驱动程序比monmgo扩展更复杂和冗长。我在网上找了很久。终于找到一个比较简洁的mongodb类。语法类似于mongo。清晰自然。项目地址是https://github.com/mongodb/mongo-php-library因为项目是国外朋友贡献的。所以没有可以看清楚的文档。下面介绍一些常用的方法。获取实例$uri="mongodb://username:password@host/database";$client=new\MongoDB\Client($uri);获取集合$collection=$client->selectCollection('test','test');获取一条数据$data=$collection->findOne(['id'=>1]);获取多条数据$where=['type'=>1];$options=array('projection'=>array('id'=>1,'age'=>1,'name'=>-1),//指定返回哪些字段1表示返回-1表示不返回return'sort'=>array('id'=>-1),//指定排序字段'limit'=>10,//指定返回的项数'skip'=>0,//指定起始位置);$data=$collection->find($where,$options)->toArray();var_dump($data);重复数据删除$fileName='name';$where=['id'=>['$lt'=>100]]$ret=$this->collection->distinct($fileName,$where);插入一条数据$data=array('id'=>2,'age'=>20,'name'=>'张三');$ret=$collection->insertOne($data);$id=$ret->getInsertedId();批量插入$data=array(['id'=>1,'age'=>21,'name'=>'1xiaoli'],['id'=>2,'age'=>22,'name'=>'2xiaoli'],['id'=>3,'age'=>23,'name'=>'3xiaoli'],['id'=>4,'age'=>26,'name'=>'4xiaoli'],['id'=>5,'age'=>24,'name'=>'5xiaoli'],['id'=>6,'age'=>25,'name'=>'6xiaoli'],);$ret=$collection->insertMany($data);#返回插入idvar_dump($ret->getInsertedIds());更新$ret=$collection->updateOne(array('id'=>2),array('$set'=>array('age'=>56)));更新多个$ret=$collection->updateMany(array('id'=>['$gt'=>1]),array('$set'=>array('age'=>56,'name'=>'x')));删除一个$ret=$collection->deleteOne(array('id'=>2));删除多个$collection->deleteMany(array('id'=>array('$in'=>array(1,2))));聚合$ops=[['$match'=>['type'=>['$in'=>[2,4]]]],['$sort'=>['list.create_time'=>-1]//排序顺序不能改变,否则会造成排序混乱,注意先排序后分页],['$skip'=>0],['$limit'=>20000],];$data=$collection->aggregate($ops);foreach($dataas$document){var_dump($document);}