"班级数据库": "mongodb://192.168.3.17/xxx

"学生数据库": "mongodb://192.168.3.99/xxx (只读)使用 mongoose.createConnection 进行链接2个数据库

classId 是唯一并且不会重复的。

学生数据库是只读的,并且数量非常大,并随时可能更新。

查询主要有2个问题:mongodb://xxx , 两个不相同ip数据库如何关联起来分页查询

传入cj查询班级只返回符合条件的班级列表、并且可能有其他同时筛选班级表的条件

班级表 mongodb://192.168.3.17/xxx{ "_id" : 1, "name" : "高二(1)班", classId:"a1"}

{ "_id" : 2, "name" : "高二(2)班", classId:"a2"}

{ "_id" : 3, "name" : "高二(3)班", classId:"a3"}

学生表 mongodb://192.168.3.99/xxx{ "_id" : x1, classId:"a1", "user" : "张三", "cj":['88','75']}

{ "_id" : x2, classId:"a2", "user" : "李四", "cj":['88','33','99']}

直接查询班级并关联学生表的列表为count:2,

list: [

{

"_id" : 1,

"name" : "高二(1)班",

classId:"a1",

xsxx:{

"_id" : 'x1',

classId:"a1",

"user" : "张三",

"cj":['88','75']

}

},

{

"_id" : 2,

"name" : "高二(2)班",

classId:"a2",

xsxx:{

"_id" : 'x2',

classId:"a2",

"user" : "李四",

"cj":['88','33','99']

}

},

]

查询条件是 cj = ['33'] 时count: 1,

list: [

{

"_id" : 2,

"name" : "高二(2)班",

classId:"a2",

xsxx:{

"_id" : 'x2',

classId:"a2",

"user" : "李四",

"cj":['88','33','99']

}

},

]

我通过网络搜索的答案如下,并没有帮助到我。$lookup: {

from: "学生表", // 关联到学生表

localField: "classId", // 班级表关联的字段

foreignField: "classId", // 学生表关联的字

as: "学生信息"

}

我在graphql的做法是使用resolver调用查询班级表.addRelation('学生对象信息', {

resolver: () => 学生表.getResolver('findOne'),

prepareArgs: {

filter: (source) => {

return { classId: source.classId }

}

},

projection: { openid: true }

});

node mysql 跨库查询_nodejs 在mongodb在跨数据库之中如何进行关联起来查询,并且支持筛选关联表的条件进行查询...相关推荐

  1. 战神mysql账号库_战神引挚手游数据库解析mysql/mir

    mysql/mir库: awardplayer 领养账号 字段: Idx 编号 PTID PTID HumName 人名 Level 人物等级 job 职业 sex 性别 Status 帐号状态 fi ...

  2. node mysql 增删改查_Nodejs操作MySQL - 增删改查

    先安装npm模块项目 npm init 安装mysql npm install mysql --save Nodejs 连接msyql // 导入mysql const mysql = require ...

  3. mysql sys库 oom_MySQL 5.6因为OOM导致数据库重启

    MySQL 5.6因为OOM导致数据库重启 发布时间:2020-08-09 08:29:53 来源:ITPUB博客 阅读:89 作者:feelpurple 线上的一套MySQL 5.6的从库,因为OO ...

  4. mysql 创建库 用户名_MYSQL-给带特殊符号的数据库创建用户名

    MYSQL-创建数据库及用户名: mysql> create database yoon; Query OK, 1 row affected (0.00 sec) mysql> grant ...

  5. MySQL源码学习:MySQL中禁止跨库访问的实现

    摘要:  先说一下这里"跨库"的意思:当前use的是db1, 仍可以使用select * from db2.table1来访问table1表. 这样使得我们需要访问同一个MySQL ...

  6. SQL注入—跨库注入

    SQL注入-跨库注入 1.SQL注入-跨库注入 1.1.前言 1.2.跨库注入介绍 2.跨库注入 2.1.跨库注入准备 2.2.跨库注入流程 2.2.1.判断是否为管理员权限 2.2.2.获取数据库下 ...

  7. SQL Server 跨库同步数据

    最近有个需求是要跨库进行数据同步,两个数据库分布在两台物理计算机上,自动定期同步可以通过SQL Server代理作业来实现,但是前提是需要编写一个存储过程来实现同步逻辑处理.这里的存储过程用的不是op ...

  8. mysql 备库同步_MYSQL主从库同步配置过程

    MYSQL主从库同步配置过程 为了实现网站数据库的异地备份,采用了MySQL数据库主从同步配置,需要两台服务器分别作为主从库,当主库发生增删改等操作,会实时反映到从库,我的个人服务器配置如下: 主库为 ...

  9. Best Efforts 1PC 跨库事务

    Best Efforts 1PC 跨库事务 一.背景介绍 分布式事务主要解决两种事务问题,一个是跨库事务,另一个是跨服务事务:跨库是指在一个事务里面包含多个数据源的数据库操作.跨服务是一个事务中包行多 ...

最新文章

  1. c++中const与函数一起用的时候需要注意什么?
  2. seq2seq里的数学
  3. backbone.js全栈开发
  4. go语言复数包_go语言学习之包和变量详解
  5. 开正交时候卡顿_王者荣耀:不管用WiFi还是流量都是卡顿咋办!4个办法让你变流畅...
  6. 我的第一个python web开发框架(2)——一个简单的小外包
  7. 从头開始写项目Makefile(三):变量的使用
  8. c mysql连接池_在LINUX下用C/C++写了一个连接池(访问MYSQL)的类
  9. 弹出新窗体 winform 1615018696
  10. 《Algorithms》Comparable 实现排序大全
  11. batocera整合包_模擬器作業系統RetroPie更新至4.6,支援Raspberry Pi 4、新增NeoGeo CD模擬功能...
  12. springboot2.x整合Email并利用AOP做一个项目异常通知功能
  13. TuxOnIce! 休眠到硬盘[zt]
  14. GridView中使用DropDownList的OnSelectedIndexChanged事件
  15. Gradle下载及安装
  16. DOS (Windows)命令详解
  17. ssh框架的基本运用
  18. 电脑插入了U盘却读取不出来的方法
  19. DEV中右键菜单如何只在非空单元格上显示?
  20. Android 蓝牙驱动专题分析(2)--- 蓝牙驱动代码流程、kernel dump、tombstone问题分析

热门文章

  1. TOP命令监视系统任务及掩码umask的作用
  2. libgdx游戏引擎开发笔记(十三)SuperJumper游戏例子的讲解(篇七)----各个物体的创建及其碰撞检测...
  3. 微软中文网,越办越好了!
  4. 不使用比较运算符如何比较两个数的大小
  5. 怎么把pdf转换为html,如何将PDF转换成HTML网页格式呢?
  6. centos查找linux大文件,centos中查找出大文件命令汇总
  7. oracle实例的概念组成,oracle体系结构的两个基本概念:数据库和实例
  8. eclipse配置python开发环境_eclipse怎样搭建Python开发环境
  9. Java BigInteger类| isProbablePrime()方法与示例
  10. MySQL 精选 60 道面试题(含答案)