php7 只能应用Mongodb driver来驱动mongodb。
应用Mongodb Driver衔接数据库
刚开端应用Mongodb Driver的时分我是回绝的。查看民间文档只看到一排的类以及没有知所云的成员办法,翻了半天也找没有到 find, update, delete等等要害词,愈甚至略微复杂一点的比方正本集,用户认证都没有晓得怎样衔接数据库。
幸好文档没有是齐全不,点开Mongodb\Driver\Manger::constructor 看到有几个结构参数
$uri
形如mongo://[host:port,host:port,host:port]/[dbname]?[username=aa&password=bb&replicaSet=cc]
$uriOptions
就是下面?前面的那一串参数,能够写正在这里$driverOptions
其余选项比方默许的读写参数
MongodbDriver CURD操作
这就是是我一开端感觉这个驱动反人类之处,文档里不任何的find,update,delete等字眼,只有一个Co妹妹and
类以及一个Query类
。
Query 类略微好一些,提供了局部查问选项。
实际上,对Mongo数据库的一切操作,均可以经过Co妹妹and类进行。而php的驱动文档对详细的 co妹妹andOptions
是没有做引见的。
正由于我是mongodb萌新,以是才会感觉这个驱动无比奇葩反人类,基本就无从下手。
咱们应用这个驱动的要害,是用Co妹妹and类结构一个co妹妹andOption
而这个co妹妹andOption
需求咱们从mongodb的民间文档中去理解
MONGODB MANUAL - Database Co妹妹ands
一切的操作,数据增删改查,聚合排序,数据库状态,用户认证等等,均可以经过这些饬令搞定。上面随意举几个例子
- 衔接数据库
$this->_conn = new MongoDB\Driver\Manager('mongodb://localhost:27017/test'); $this->_db = 'test'; // execute co妹妹and. function exec($opts) { $cmd = new MongoDB\Driver\Co妹妹and($opts); $res = $this->_conn->executeCo妹妹and($this->_db, $cmd); return $res->toArray(); }
- 前提查问,按需前往
$cmd = [ 'find' => 'table', // collection表名 'filter' => ['_id' => ['$gte' => 10, '$lt' => 20]], 'projection' => ['name' => 1, 'email' => 1] ]; $res = $this-exec($cmd);
- 修正记载
$cmd = [ 'update' => 'table', // collection 表名 'updates' => [ ['q' => [_id => ['$lt' => 10]], 'u' => ['status' => 0], 'upsert'=>0,'multi'=>1], ['q' => [_id => ['$gte' => 10]], 'u' => ['status' => 1], 'upsert'=>0,'multi'=>1], ], 'ordered' => 1, // 能否顺次执行updates语句,true示意执行失败后持续前面的语句,false 示意一旦失败立刻前往 ]
- 删除了记载,limit只能是1或0!
$cmd = [ 'delete' => 'table', // collection 表名 'deletes' => [ ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0示意一切,1示意删除了1行 ] ]
- 拔出数据
$cmd = [ 'delete' => 'table', // collection 表名 'deletes' => [ ['q' => [_id => ['$lt' => 5]], 'limit' => 0], // 0示意一切,1示意删除了1行 ] ]
- 分组,排序
$cmd = [ 'aggregate' => 'table', // collection 表名 'pipeline' => [ '$group' => 'class', '$sort' => 'score' ] ]
- 读取数据库状态
$cmd = [ 'replSetGetStatus' => 1, ]
辅佐类 BSON
最有用确当然是 MongoDB\BSON\Javascript
以及 MongoDB\BSON\ObjectId
,辨别是传入 javascript 剧本函数,以及应用 mongodb 的ojectid。
异样 Exception
一切MongoDBDriver 孕育发生的异样均可以用 MongoDB\Driver\Exception\Exception
捕捉
以上就是分享PHP7 MongoDB Driver 应用心患上的具体内容,更多请存眷资源魔其它相干文章!
标签: PHP7 php7开发教程 php7开发资料 php7开发自学
抱歉,评论功能暂时关闭!