mongodb多表查询,五个表查询

需求是这样的,而数据是从mysql导入进来的,由于mysql不支持数组类型的数据,所以有很多关联表。药剂里找药物,需要药剂与药物的关联表,然后再找药物表。从药物表里再找药物与成分关联表,最后再找成分表。

这里就涉及到了五张表的查询,之前的文章有讲解过多表查询这块。
mongodb以及mongoose插件如何多表查询,如同时查询店铺以及里面对应的商品_mongodb 多表查询-CSDN博客

这次我们来实战一下。

复制代码
db.fangji.aggregate([
{
            $match: {id:"2"},
        },
  {
    $lookup: {
      from: "fangji_herb",
      localField: "fangji_id",
      foreignField: "fangji_id",
      as: "fangjiHerb"
    }
  },
  {
    $lookup: {
      from: "herb_details",
      localField: "fangjiHerb.herb_id",
      foreignField: "herb_id",
      as: "herbs"
    }
  },
  {
    $lookup: {
      from: "offline_ingredient_herb",
      localField: "fangjiHerb.herb_id",
      foreignField: "herb_id",
      as: "offlineIngredientHerb"
    }
  },
  {
    $lookup: {
      from: "offline_ingredient",
      localField: "offlineIngredientHerb.item_id",
      foreignField: "item_id",
      as: "offlineIngredient"
    }
  }
]);

不过最终结果还是都放在不同的数组里了,需要前端慢慢处理结构,并转换为树的结构

相关推荐
G.O.G.O.G20 分钟前
LeetCode SQL 从入门到精通(MySQL)05(下)
数据库·sql·oracle
其实防守也摸鱼25 分钟前
运维--安全与数据库
网络·数据库·学习·安全·安全威胁分析·数据库架构·软件安全
Rsun0455142 分钟前
MySQL 中什么是回表?
数据库·mysql
Sylvia33.1 小时前
足球数据接口开发实战:如何用火星数据API盘活赛事应用
java·服务器·开发语言·数据库·python
ruleslol2 小时前
Mybatis11-不同的数据库连接池的配置
数据库·mybatis
苏州邦恩精密2 小时前
蔡司3D扫描仪厂家如何应用于航空航天制造
大数据·数据库·人工智能·3d·自动化·制造
alxraves2 小时前
医院远程会诊系统:数据库模块设计与实现
数据库·oracle
wordpress资料库2 小时前
WordPress数据表前缀的修改方法(完整版)
数据库·wordpress数据表前缀·wordpress修改前缀
苦瓜汤补钙3 小时前
Oracle JDK8 环境配置-Win11
开发语言·数据库·笔记·oracle
Dovis(誓平步青云)3 小时前
《 AI直连数据库落地实践:基于MCP协议打通开发工具与数据库全链路运维分析》
大数据·linux·运维·数据库·人工智能·架构