thinkphp6使用MongoDB多个数据,聚合查询的坑

embedded/2024/12/25 13:50:26/

我使用的是thinkphp6,mongodb4.0实际业务查询

  $list = Db::connect('tstd_mongo')->table("$table_time.Item")->where($where)->order("Cause","asc")->field('_id,DBID,Data,GSID,MainKind,ManID,DISTINCT(Serial) Serial,SubKind,Time')->paginate($limit);

->table("$table_time.Item")

我是根据数据,要去不同的数据库查询,需要修改源码

topthink\think-orm\src\db\connector\Mogo.php      function command()下 ,

$dbName = $dbName ?: $this->dbName; 

修改成

if (!empty($this->builder->dbName)){$dbName = $dbName ?: $this->builder->dbName;$this->dbName=$dbName;
}else{$dbName = $dbName ?: $this->dbName;
}

如果使用paginate  count  就要修改

topthink\think-orm\src\db\builder\Mongo.php

if (strstr($options['table'], '.')!== false) {$parts = explode('.',$options['table']);$count_db = !empty($parts[0])?$parts[0]:'';$count_table = !empty($parts[1])?$parts[1]:'';if (!empty($count_table)){$options['table']=$count_table;}if (!empty($count_db)){$this->dbName = $count_db;}
}

如果用  其他 ,aggregate,select  方法  也要加这段代码


http://www.ppmy.cn/embedded/148634.html

相关文章

VisionPro开发使用交互反馈系统(Affordance System)

XR Interaction Toolkit 提供了一个affordance system 可供性系统,使用户能够创建对交互状态的视觉和听觉反馈。一般的信息流从向Affordance State Provider场景中添加一个(通常是可交互的)并将其指向我们要监视其交互状态的可交互对象开始。…

docker部署微信小程序自动构建发布和更新

通过 Jenkins 和 Docker 部署微信小程序,并实现自动构建、发布和版本更新,主要涉及以下几个步骤: 设置 Jenkins 环境配置 GitLab 与 Jenkins 的集成构建 Docker 镜像部署和发布微信小程序配置 Jenkins 自动构建 以下是详细的步骤说明&#…

embeding 层到底是什么

embending 的本质是 word2vec 大白话讲解word2vec到底在做些什么 那时候 博主还比较年轻 ,啃过托马斯马尔科夫的 word2vec 源码 ,那是一个三层神经网络,用C实现的 ,最近创业失败了 ,又去找工作,啥都不会,被…

小红书关键词搜索采集 | AI改写 | 无水印下载 | 多维表格 | 采集同步飞书

小红书关键词搜索采集 | AI改写 | 无水印下载 | 多维表格 | 采集同步飞书 一、下载影刀: https://www.winrobot360.com/share/activity?inviteUserUuid595634970300317698 二、加入应用市场 https://www.yingdao.com/share/accede/?inviteKeyb2d3f22a-fd6c-4a…

w113健身房管理系统

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…

Python基础学习的资料

一、Python简介 Python是一种高级、解释型、通用的编程语言。它由Guido van Rossum于1989年开始开发,第一个公开发行版发行于1991年。 特点 简洁易读 Python代码简洁明了,采用缩进的方式来表示代码块,而不是像其他语言使用大括号。例如&…

一文掌握如何编写可重复执行的SQL

一文掌握如何编写可重复执行的SQL 文章已同步个人博客:一文掌握如何编写可重复执行的SQL 背景 先提出问题,这里的可重复执行是指什么?我们为什么要编写可重复执行的sql? 可重复执行是指一条sql重复多次执行都不会报错&#xf…

【网络云计算】2024第51周-每日【2024/12/20】小测-理论-周测

文章目录 1、软件RAID的常用级别和硬件RAID的区别,制作RAID生产环境有哪些注意事项2、交换机常用的技术有哪些3、NFS服务器如何结合LVM4、写两个if语句,判断文件和目录是否存在5、链路聚合和VRRP有哪些区别? 【网络云计算】2024第51周-每日【…