mongodb - 如何在 MongoDB 中的 Case Condition 成功查询执行中使用 SQL kind join?
问题描述
我有一个用例,我需要在 MongoDB 中加入两个集合,但只有在满足两个条件之一时才必须进行加入。SQL 等效查询如下所示。我如何在 MongoDB 中翻译这个?
SELECT *
FROM MainTble i
Left JOIN SecondTable p
ON CASE
WHEN i.myPropert="SMS" and i.phoneNumber = p.phoneNumber THEN 1
WHEN i.myProperty="Email" and i.email = p.email THEN 1
ELSE 0
END = 1
解决方案
您可以使用$lookup来实现类似的行为。在子管道中,使用$addFields
创建一个辅助字段然后$match
在辅助字段上过滤$lookup
/加入结果。
这是Mongo Playground供您参考。
推荐阅读
- elasticsearch - 如何将嵌套查询与普通匹配查询一起查询?
- java - 如何使用 Java 找出您的计算机名称
- python - 如何在此类图像中找到最大的空白空间?
- logging - 全局定义的 RingBuf 在 loop() 函数中不起作用
- mysql - 如何取一个字段的开始日期和另一个字段的结束日期来创建一个新字段?
- r - 带有谷歌驱动器凭证和谷歌地球引擎的 RStudio 出错
- python - Python Pyserial 异步
- spring-batch - Spring Batch - 如何从文件的特定部分读取字段和实际数据?
- css - CSS中将多个具有相同属性选择器的选择器组合成一个选择器
- angular - ngrx - 如何更新 ActionReducerMap 中的另一个减速器