• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 解析TP框架下mongo的基础操作及其注意点

解析TP框架下mongo的基础操作及其注意点

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了ThinkPHP框架,mongo的基础操作等相关知识,希望对您有所帮助

下面给大家介绍关于thinkphp下的mongo的操作,希望对需要的朋友有所帮助!


解析TP框架下mongo的基础操作及其注意点



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'去查是查不到的!


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ThinkPHP框架SQL操作链式写法原理
  • 解析TP框架下mongo的基础操作及其注意点
  • ThinkPHP框架实现的邮箱激活功能示例

相关文章

  • 2022-04-29PhotoShop打造星云四射跳舞的女孩海报效果教程
  • 2022-04-29Centos7 yum安装php的方法
  • 2022-04-29Vue 手势组件教程
  • 2022-04-29Photoshop使用图层样式制作漂亮的相机图标
  • 2022-04-29Photoshop绘制杂色质感椭圆极光网页按钮
  • 2022-04-29VUE项目地址去掉 # 号的方法
  • 2022-04-29宝塔面板"Service Unavailable"503的问题怎么解决
  • 2022-04-29一文带你PHP利用phpmailer实现邮件发送功能
  • 2022-04-29如何解决微信支付php7.0错误问题
  • 2022-04-29Discuz! X3.4特殊字符乱码解决方案!

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 图文详解Thinkphp5多语言切换(中英文实例)
    • CSS如何禁止元素的点击事件
    • Thinkphp极验滑动验证码实现步骤解析
    • Photoshop制作炫彩效果的霓虹字教程
    • 建网站用哪里的服务器比较好?哪里的空间便宜
    • PHP高级检索功能的实现以及动态拼接sql
    • PS--【CDR简单文字特效】雾不迷
    • windows登陆界面制作
    • Photoshop打造超酷的火焰汽车
    • Photoshop制作逼真复古效果的黑胶唱片

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有