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

server/2024/12/25 22:27:15/

我使用的是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/server/153155.html

相关文章

115.【C语言】数据结构之排序(希尔排序)

目录 1.希尔排序(又称缩小增量排序)(插入排序的优化版本) 过程1:预排序 过程2:插入排序 2.代码 预排序代码 1.一次排一组(时间复杂度比第二种写法高) 运行结果 其他写法 2.一次排多组(多组并排) 运行结果 希尔排序代码 1.当预排序一次排一组时 运行结果 2.当预排…

mysql 获取某个表大小

有一个业务逻辑是判断日志表大小,如果达到1g,则需要报警提示 SELECT table_name as tableName, data_length AS size FROM information_schema.TABLES WHERE table_schema test AND table_name s_log; 其中test是库名,s_log是要查询的表名 经过测试…

用二进制方式向文件读写一组数据

【例10.4】从键盘输入10个学生的有关数据&#xff0c;然后把它们转存到磁盘文件上去。 #include<stdio.h> struct Student{char name[20];int number;int age; }; int main(){int i;struct Student stu;FILE *fp;fp fopen("1.txt","wb");if(fp N…

Flutter组件————FloatingActionButton

FloatingActionButton 是Flutter中的一个组件&#xff0c;通常用于显示一个圆形的按钮&#xff0c;它悬浮在内容之上&#xff0c;旨在吸引用户的注意力&#xff0c;并代表屏幕上的主要动作。这种按钮是Material Design的一部分&#xff0c;通常放置在页面的右下角&#xff0c;但…

JavaScript查缺补漏

文章目录 一、JavaScript是什么&#xff1f;1. JavaScript2.数组的使用3.函数默认参数4.对象中查找属性的另外写法 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、JavaScript是什么&#xff1f; 1. JavaScript 是一种运行在客户端&#xff08;浏…

便捷的线上游戏陪玩、线下家政预约以及语音陪聊服务怎么做?系统代码解析

系统架构选择的综合考虑 前端使用uniapp可跨平台开发&#xff0c;基于Vue.js的跨平台开发框架&#xff0c;允许开发者使用同一套代码基础构建面向iOS、Android、以及各种小程序&#xff08;如微信小程序&#xff09;、H5等多个平台的应用。 后端使用易于学习且免费开源的thin…

停车管理系统:构建安全、便捷的停车环境

Tomcat 简介 只要学习Java Web项目就不得不学习Tomcat。Tomcat是一种免费的开源的一种Java Web项目的容器&#xff0c;完美继承了 Apache服务器的特性&#xff0c;并且里面添加可以自动化运行的Java Web组件&#xff0c;让Java Web项目可以完全的运行到Tomcat里面。对于特大型项…

【JetPack】Navigation知识点总结

Navigation的主要元素&#xff1a; 1、Navigation Graph&#xff1a; 一种新的XML资源文件,包含应用程序所有的页面&#xff0c;以及页面间的关系。 <?xml version"1.0" encoding"utf-8"?> <navigation xmlns:android"http://schemas.a…