使用MongoDB类操作MongoDB数据库总结
来源:互联网 发布:香港银行开户 知乎 编辑:程序博客网 时间:2024/05/19 22:58
搜了很多资料,操作MongoDB都是使用Mongo类的,偏偏我使用的Ubuntu 16.4版本不能装这个扩展库,只能装MongoDB类,于是我被逼上了梁山。只好尝试自己完全没有使用过的MongoDB类。刚接触的时候,那个不习惯啊,类超级多,只好耐着性子一个一个看,查看他们之间的关系:MongoDB中各类简单介绍,然后又去把该类的入口文件:Manager类的官网资料翻译了出来,才渐渐基础能用,这里先介绍一下他们的基础关系,至于他们具体的传入参数和返回值类型,那只能去看官网了:
我使用上述类简单操作MongoDB的时运行的顺序是:
- 实例化Manager类
- 要进行增删改操作时,实例化BulkWrite类,并根据需要的操作执行该类中的insert、delete、update方法,要进行查询时,实例化Query类
- 接着根据2中的操作,选择运行Manager类的executeQuery或者executeBulkWrite两个操作中的一个,返回结果类型是Cursor类,运行Cursor类的toArray方法,就能将结果从对象转换成数组,虽然其中还是会包含对象,但是比起单纯处理对象无疑是方便多了的。
这里贴一个我写的基础操作类,把上面的过程进行了整合:
class MongoDBOperate{ private $config = array( 'host' => '127.0.0.1', 'port' => '27017', 'user' => '', 'passwords' => '', 'db' => 'test' );// MongoDB\Driver入口类 private $Manage; function __construct() { try { $this->Manage = new MongoDB\Driver\Manager("mongodb://" . $this->config['host'] . "/" . $this->config['port']); } catch (Exception $exception) { echo $exception->getMessage(); } } /** * @param $collection * @param $data * @return array * 新增数据 */ public function insert($collection, $data) {// 返回结果_id $_ids = array(); $BulkWrite = new MongoDB\Driver\BulkWrite(); if (is_array(current($data))) { foreach ($data as $key => $datum) { $_id = new MongoDB\BSON\ObjectID(); $datum['_id'] = $_id; $BulkWrite->insert($datum); $_ids[] = $_id->oid; } } else { $_id = new MongoDB\BSON\ObjectID(); $data['_id'] = $_id; $BulkWrite->insert($data); $_ids = $_id->oid; } $this->Manage->executeBulkWrite($this->config['db'] . "." . $collection, $BulkWrite); return $_ids; } /** * @param $collection * @param $filter * 删除数据 */ public function delete($collection,$filter){ $BulkWrite=new MongoDB\Driver\BulkWrite(); if(is_array(current($filter))){ foreach ($filter as $key=>$value){ $BulkWrite->delete($value); } }else{ $BulkWrite->delete($filter); } $this->Manage->executeBulkWrite($this->config['db'].".".$collection,$BulkWrite); } /** * @param $collection * @param $filter * @param $data * 更新数据 */ public function update($collection,$filter,$data){ $BulkWrite=new MongoDB\Driver\BulkWrite(); if(is_array(current($filter))){ foreach ($filter as $key=>$value){ $BulkWrite->update($value,$data[$key]); } }else{// var_dump($filter);// var_dump($data); $BulkWrite->update($filter,$data); } $this->Manage->executeBulkWrite($this->config['db'].".".$collection,$BulkWrite); } /** * @param $collection * @param $filter * @return array * 查看数据 */ public function select($collection,$filter){ $Query=new MongoDB\Driver\Query($filter); $cursor=$this->Manage->executeQuery($this->config['db'].".".$collection,$Query); return $cursor->toArray(); }}
上面只是把多个操作类之间的组合关系进行了整合,如果你不会MongoDB类的命令行操作的话,那么你还是玩不6的,所以推荐你看一下我以前的摘记:MongoDB基础命令行操作简记。
阅读全文
0 0
- 使用MongoDB类操作MongoDB数据库总结
- MongoDB:MongoDB数据库操作
- MongoDB 数据库操作类
- 【数据库--mongodb】3.MongoDB基本操作(总结)
- PHP操作MongoDB 数据库总结记录
- PyMongo简单使用以及操作mongodb数据库
- php使用mongoclient简单操作mongodb数据库
- PHP操作mongodb数据库操作类
- PHP操作mongodb数据库操作类
- PHP操作mongodb数据库操作类
- mongodb数据库操作语法
- mongodb 数据库update 操作
- Mongodb数据库 操作语句
- mongodb数据库命令操作
- mongodb数据库操作语法
- mongodb数据库操作语法
- mongodb数据库操作语法
- java 操作MongoDB数据库
- lightgbm python基本使用 --mac下操作
- sql之left join、right join、inner join的区别
- 云计算非功能性-可靠性可用性优化指标
- PAT 甲级 1016. Phone Bills
- select下拉框内容回显 并将对应的option设置为selected选中状态
- 使用MongoDB类操作MongoDB数据库总结
- (VS2010)MFC中List Control基本用法
- OnCtlColor函数的用法
- angular 4 表单
- 原生js实现对select下拉列表的内容过滤
- 圆圈中最后剩下的数
- 基本VLAN特性配置与管理——5
- Shader-数据类型
- 线程学习笔记