【发布时间】:2020-10-27 17:31:17
【问题描述】:
是否可以使用 2 个或更多类似于 SQL 查询的集合在 Mongo DB 中编写联合查询?
我正在使用 spring mongo 模板,在我的用例中,我需要根据某些条件从 3-4 个集合中获取数据。我们可以在一次操作中实现这一点吗?
例如,我有一个名为“circuitId”的字段,它出现在所有 4 个集合中。我需要从所有 4 个集合中获取该字段与给定值匹配的所有记录。
【问题讨论】:
-
欢迎来到使用文档数据库的世界。您可能有 4 个集合,因为每个集合都包含具有不同结构的文档。在这种情况下,解决方案是将所有文档放在“一个”集合中,因为这是使用没有严格模式的基于文档的数据库的用途。如果您只是想以与使用 RDBMS 相同的方式做所有事情,那么切换引擎根本没有意义。做引擎做的事情,而不是你习惯做的事情。
-
@NeilLunn :- 在这 1 个集合中是父集合,其他 3 个是参考集合。但是,在父集合中没有为它们提供参考。数据库映射就是这样设计的,不太可能改变。所有这 4 个集合都具有相同的唯一标识符 - vTMId。
-
评论不是解释的地方。你不能做一个“联合查询”,因为这是一个 SQL 的事情,它不适用于这里。您的一般解决方案是进行不同的建模。如果您有需要在 MongoDB 中建模以解决问题的数据,请提出您的问题。但简单地问“我如何在 MongoDB 中执行此 SQL 事情?” 没有提供您真正需要做什么的示例,这只是题外话,无法回答。这些是您在此处发布问题时的期望。
标签: mongodb union spring-mongo