• 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的基础操作及其注意点

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了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框架实现的邮箱激活功能示例

相关文章

  • MySQL大数据分页查询性能优化
  • 分享封装的一个PHP微信支付的类库(扫码、H5、小程序)
  • 利用图层样式制作漂亮的彩色霓虹字
  • uni-app小程序录音上传的解决方案
  • PHP调用今天的日期几月星期几
  • 介绍PHP基于Thinkphp5的砍价活动相关设计
  • PHPCMSV9单次最多只能上传10个附件的解决方法
  • Photoshop制作华丽的金色礼品字
  • 如何解决mysql 5.6 中文 乱码问题
  • Photoshop制作精致的橙色石纹立体字

文章分类

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

最近更新的内容

    • 带你了解Angular中的组件通讯和依赖注入
    • Javascript怎么实现红绿灯
    • 一招教你使用Node.js中iis部署运行node(附代码)
    • 详解thinkphp5.1/5.0定时任务的实现步骤
    • Photoshop制作可口的饼干文字特效
    • 织梦DedeCMS系统列表页调用TAG标签并带上链接的实
    • CSS如何修改placeholder的颜色
    • 手机批发网优化学习过程心态分享
    • 微信小程序按顺序同步执行的两种方式分别是什么
    • Photoshop设计立体质感的标签式按钮

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

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