Java 提高将一个字段与多个集合Mongodb Jdbc进行比较的效率

Java 提高将一个字段与多个集合Mongodb Jdbc进行比较的效率,java,sql,mongodb,jdbc,Java,Sql,Mongodb,Jdbc,您好,我有一个SQL查询,我正试图使用MongoJava驱动程序Jdbc[2.10]在MongoDB中实现它。我的sql查询是 SELECT DISTINCT table1.id FROM table1,table2 WHERE table1.x = table2.x and table1.y IN ( somevalue ) AND table2.y IN (somevalue) 在MongoDB中,我有Table1集合和Table2集合。我使用Jdbc创建了两个对象来访问两个集合。考虑

您好,我有一个SQL查询,我正试图使用MongoJava驱动程序Jdbc[2.10]在MongoDB中实现它。我的sql查询是

SELECT DISTINCT table1.id FROM table1,table2 WHERE table1.x = table2.x and 
table1.y IN ( somevalue ) AND  table2.y IN (somevalue)
在MongoDB中,我有Table1集合和Table2集合。我使用Jdbc创建了两个对象来访问两个集合。考虑到我有1个缺乏记录在每个集合。如果我尝试将每个文档值与另一个集合进行比较,则需要进行1次缺失*1次缺失比较??之后,我想将其与“y”值匹配

有谁能建议我如何有效地将此查询转换为MongoDB jdbc查询


谢谢

mongdb不支持这样的连接,因此您需要执行多个查询。可能是这样的:


db.collection1.distinct('id',{y:{$in:[…]})

然后获取这些ID并对collection2执行另一个$in查询


不过,我必须问一下,为什么会有一个没有唯一ID的表。

使用经典的RDBMS,您对基础进行建模,然后编写查询


对于MongoDB,情况往往相反:列出您的用例,即访问模式,并根据您的需要对数据进行建模。

Mongo Java驱动程序不支持SQL或JDBC API。MongoDB不支持联接。如果要使用SQL,有一个JDBC驱动程序可用:。还可以通过使用嵌套将两个集合合并为一个集合来避免连接