当前位置: 代码网 > it编程>数据库>Nosql > MongoDB中实现多表联查的实例教程

MongoDB中实现多表联查的实例教程

2024年05月19日 Nosql 我要评论
前些天遇到一个需求,不复杂,用 sql 表现的话,大约如此:没想到搜了半天,我厂的代码仓库里没有这种用法,各种教程也多半只针对合并查询(即只筛选db1,没有db2的条件)。所以最后只好读文档+代码尝试

前些天遇到一个需求,不复杂,用 sql 表现的话,大约如此:

没想到搜了半天,我厂的代码仓库里没有这种用法,各种教程也多半只针对合并查询(即只筛选 db1,没有 db2 的条件)。所以最后只好读文档+代码尝试,终于找到答案,记录一下。

  • 我们用 mongoose 作为连接库
  • 联查需要用 $lookup
  • 如果声明外键的时候用 objectid,就很简单:

但是我们没有用 objectid,而是用 string 作为外键,所以无法直接用上面的联查。必须在 pipeline 里手动转换、联合。此时,当前表(db1)的字段不能直接使用,要配合 let,然后加上 $$ 前缀;连表(db2)直接加 $ 前缀即可。

最终代码如下:

mongo.ts

同事告诉我,这样做的效率不一定高。我觉得,考虑到实际场景,他说的可能没错,不过,早晚要迈出这样的一步。而且,未来我们也应该慢慢把外键改成 objectid 类型。

总结

到此这篇关于mongodb中实现多表联查的文章就介绍到这了,更多相关mongodb多表联查内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com