解析TP框架下mongo的基础操作及其注意点
发布时间 - 2021-09-22 00:00:00 点击率:次下面thinkphp框架教程栏目将给大家介绍关于thinkphp下的mongo的操作,希望对需要的朋友有所帮助!
1.多个条件语句,网上很多只是一个大于或者一个小于,没有2个合并的,如大于2并且小于4的
$where['_string'] = 'this.b > 2 & this.b<4';
2.group
mysql:
$res = $model->where(['sTaskId'=>['$in'=>$task_array]])->group('a')->field('a,sum(a)')->select();
mongodb:
$key = ['a'=>1]; //groupby的字段
$init = ['num'=>0];//统计的初始值
$option = array(
'table' => 'course’, // 表名
'condition’=>['sTaskId'=>['$in'=>$task_array]], //group中过滤条件
);
//必须要带option
$reduce = "function(obj, prev){prev.num = prev.num+obj.a}";
$model = new TestModel();
$res = $model->group($key, $init, $reduce, $option);
这里讲一下tp的mongo扩展是有问题的,在group里调用where会无效,具体解决方案是要在mongo.class.php文件
a.把$query改为如下:
$query = $this->parseWhere(isset($options['condition'])?$options['condition']:array());
当然$this->queryStr 也要改的
b.把$group改为:
$group = $this->_collection->group($keys,$initial,$reduce,$query);3.如果你要用model模型去查询,并且你的主配置是mysql,那就需要先在配置文件配置
'mongo' => [ DB_TYPE => mongo DB_HOST => localhost DB_NAME => test DB_PORT => 40000 DB_PREFIX =>'' DB_USER => '' DB_PWD => '' ],
然后在model文件里配置,
a.protected $trueTableName = '表名';
b.protected $connection = '驱动名,这里是mongo';
c.该model继承MongoModel
4.批量更新
mysql里只要$res = $model->save(['a'=>1']); mongo的话需要写成$res = $model->where([])->save(['a'=>1]);
5.mongo注意点:
mongo对于数据类型的控制比较严格,如果你存个int的1,用'1'去查是查不到的!
推荐:《最新的10个thinkphp视频教程》
# php
# mongodb
# mysql
# thinkphp
# 继承
# protected
# 如果你
# 是有
# 那就
# 多个
# 也要
# 要在
# 要用
# 只是一个
# 先在
# 要带
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
教你用AI润色文章,让你的文字表达更专业
简单实现Android文件上传
清除minerd进程的简单方法
使用Dockerfile构建java web环境
香港服务器如何优化才能显著提升网站加载速度?
公司网站制作价格怎么算,公司办个官网需要多少钱?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
如何在VPS电脑上快速搭建网站?
Laravel怎么导出Excel文件_Laravel Excel插件使用教程
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
简历在线制作网站免费版,如何创建个人简历?
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
QQ浏览器网页版登录入口 个人中心在线进入
如何为不同团队 ID 动态生成多个“认领值班”按钮
JavaScript模板引擎Template.js使用详解
网站制作免费,什么网站能看正片电影?
大型企业网站制作流程,做网站需要注册公司吗?
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
Python函数文档自动校验_规范解析【教程】
成都网站制作公司哪家好,四川省职工服务网是做什么用?
专业商城网站制作公司有哪些,pi商城官网是哪个?
免费网站制作appp,免费制作app哪个平台好?
网站优化排名时,需要考虑哪些问题呢?
如何获取免费开源的自助建站系统源码?
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
Python文件流缓冲机制_IO性能解析【教程】
西安专业网站制作公司有哪些,陕西省建行官方网站?
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Laravel如何实现API资源集合?(Resource Collection教程)
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
Python并发异常传播_错误处理解析【教程】
iOS中将个别页面强制横屏其他页面竖屏
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
焦点电影公司作品,电影焦点结局是什么?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
香港服务器部署网站为何提示未备案?
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
如何基于PHP生成高效IDC网络公司建站源码?
Laravel如何使用Eloquent进行子查询
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
利用python获取某年中每个月的第一天和最后一天
C++时间戳转换成日期时间的步骤和示例代码
javascript中的try catch异常捕获机制用法分析
如何续费美橙建站之星域名及服务?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
文字头像制作网站推荐软件,醒图能自动配文字吗?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
下一篇:安卓微信如何发实况图
下一篇:安卓微信如何发实况图


=>1]);