首页 > 解决方案 > 如何在 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

标签: mongodbjoinaggregation-frameworkconditional-statementslookup

解决方案


您可以使用$lookup来实现类似的行为。在子管道中,使用$addFields创建一个辅助字段然后$match在辅助字段上过滤$lookup/加入结果。

这是Mongo Playground供您参考。


推荐阅读