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"
    }
  }
]);

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

相关推荐
Elastic 中国社区官方博客4 分钟前
错误最多的服务运行正常:使用 ES|QL 从日志进行根因分析
大数据·运维·数据库·sql·elasticsearch·搜索引擎·全文检索
做运维的阿瑞31 分钟前
mysql数据库视图笔记:创建、修改、删除与适用场景
数据库·笔记·mysql
Seraphina3640 分钟前
DVWA(SQL Injection-High,XSS Reflected-Medium,XSS Stored-Medium)
数据库·经验分享·sql·网络安全·xss
@Mike@41 分钟前
12-数据库学习笔记(五种连接算法)
数据库·笔记·学习
Omics Pro1 小时前
之江实验室NAR|虚拟细胞3阶段训练范式
数据库·人工智能·算法·机器学习·自然语言处理
龙亘川1 小时前
探索智慧文化服务:建设初衷、整体架构、技术支撑、发展现状与实践影响
大数据·数据库·架构
风早爽太1 小时前
Python 学习笔记:数据库迁移工具 ‌Alembic
数据库·python·fastapi·alembic
java1234_小锋1 小时前
【技术专题】Mysql8 数据库 - Mysql8 数据库基本操作
数据库·mysql
其实防守也摸鱼2 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化
jason.zeng@15022072 小时前
canal做mysql的异步传输工具
数据库·mysql·linq