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

时间:2013-10-31 11:22:44

标签: 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我创建了两个对象来访问两个集合。考虑我在每个集合中有1个缺乏记录。如果我尝试将每个单个文档值与另一个集合进行比较,则需要1个缺少* 1缺少比较。 ??之后,我想将它与'y'值匹配?

任何人都可以建议我如何有效地将此查询转换为MongoDB jdbc查询?

由于

3 个答案:

答案 0 :(得分:0)

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

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

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

但是,我不得不问为什么你的桌子上没有唯一的ID。

答案 1 :(得分:0)

使用经典的RDBMS,您可以为基础建模,然后编写查询。

对于MongoDB,它往往恰恰相反:您列出您的用例,即访问模式,并根据您的需要为数据建模。

答案 2 :(得分:0)

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