mongo 使用Command解决不同条件批量处理问题
来源:互联网 发布:npm 修改为淘宝镜像 编辑:程序博客网 时间:2024/06/05 21:56
参考链接 https://docs.mongodb.com/manual/reference/command/nav-crud/
文中有一系列的可以批量处理的操作 下面show下 update
需求是这样:
定时执行的脚本,不同条件的执行一批数据 使用foreach 单挑更新的话 出错的几率更加的大
所提议选择了批量的更新 ,但是MongoCollecion 没有可以执行不同条件更新的函数
所以用到了原生的MongoDB\Driver\Manager::executeCommand
关于update 命令的部分
语法:
update collection name
updates 是二维的索引数组 内部有完整的数据结构
单个的数组的结构是
q array 正常的条件
u 是要更新的内容(这个等同于update()函数的更新的内容)
upsert 没有找到则插入,找到了则更新
multi true 符合条件的则全部更新 默认false 只更新第一条
return value:
如果执行遇到了错误 会出现字段 WriteErrors 是一个数组 ,
没有出错的话那么 字段不存在
上代码:
// gen cmd string$query = [ 'end_time' => [ '$gte' => 1505285294 ]];$query2 = [ 'end_time' => [ '$gte' => 1504972800, '$lt' => 1505285294 ]];$cmd = [ 'update' => 'sid_collection', 'updates' => [ //二维的索引数组 [ 'q' => $query, 'u' => ['$set' => ['tel' => '110-000']], 'upsert' => true, 'multi' => true ], [ 'q' => $query2, 'u' => ['$set' => ['tel' => '112-222']], 'upsert' => true, 'multi' => true ] ],];$command = new \MongoDB\Driver\Command($cmd);// gen mongo instance$mongo_manager = new \MongoDB\Driver\Manager('mongodb://ip:27017');try { $data = $mongo_manager->executeCommand('crs', $command);} catch (MongoDB\Driver\Exception\RuntimeException $e) { echo $e->getMessage(), "\n"; exit;}var_dump($data);
阅读全文
0 0
- mongo 使用Command解决不同条件批量处理问题
- MongoDB_Java连接mongo 使用Java多条件查询mongo数据
- 解决mongo 端口占用问题
- case when 批量条件处理
- Mac 使用ZSH终端设置问题,解决command not found
- Mongo解决注册码到期的问题
- mongo command line
- 关于批量处理问题
- Mongo多条件查询与分组的使用
- sql 批量修改,根据不同的条件来修改数据
- mongo bulk批量更新
- 批量删除mongo collections
- 【Mongo】 批量删除集合
- 使用CSS解决不同浏览器的错位问题
- 使用@media screen解决分web不同分辨率问题
- mongo $where 使用注意性能问题
- Mongo问题
- TarjanAndDisjointSetsForLCA解决批量查询问题
- jquery插件导出WORD
- 【Scikit-Learn 中文文档】广义线性模型
- 直接插入排序
- TF_Serving安装篇
- 获取滚动条高度 兼容ie8
- mongo 使用Command解决不同条件批量处理问题
- 检查udp端口是否可用?
- 随机梯度下降笔记(手写数字识别)
- 深入java重载和重写的内幕
- ehcache与spring整合
- TCP/IP通信 客户端、服务器 实例
- Java入门之初识Java
- 11.21学习心得
- 学习笔记:HTML5