今天小编给大家分享一下MongoDB中如何实现多表联查的相关知识点,内容详细,逻辑清晰,相信大部分人免费云主机域名都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前些天遇到一个需求,不复杂,用 SQL 表现的话,大约如此:没想到搜了半天,我厂的代码仓库里没有这种用法,各种教程也多半只针对合并查询(即只筛选db1
,没有db2
的条件)。所以最后只好读文档+代码尝试,终于找到答案,记录一下。我们用 mongoose 作为连接库联查需要用$lookup
如果声明外键的时候用ObjectId
,就很简单:但是我们没有用ObjectId
,而是用string
作为外键,所以无法直接用上面的联查。必须在pipeline
里手动转换、联合。此时,当前表(db1
)的字段不能直接使用,要配合let
,然后加上$$
前缀;连表(db2
)直接加$
前缀即可。最终代码如下:mongo.ts同事告诉我,这样做的效率不一定高。我觉得,考虑到实际场景,他说的可能没错,不过,早晚要迈出这样的一步。而且,未来我们也应该慢慢把外键改成ObjectId
类型。以上就是“MongoDB中如何实现多表联查”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。
本文小编为大家详细介绍“C#位运算符的基本使用方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#位运算符的基本使用方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。位运算符包括:| 按位或 OR,& 按位与…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。