分享PHP7 MongoDB Driver 使用心得-PHP7

资源魔 31 0
本文由PHP7教程栏目给各人分享PHP7 MongoDB Driver 应用心患上,心愿对需求的冤家有所协助!

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开发自学

抱歉,评论功能暂时关闭!