2013-10-31 18 views
0

嗨,我有一个SQL查询我试图在MongoDB中使用MongoJava驱动程序Jdbc [2.10]实现它。我的sql查询是,提高效率比较一个字段与多个集合Mongodb Jdbc

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查询?

谢谢

回答

0

mongdb不支持这样的连接,所以你需要做多个查询。像这样也许:

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

然后采取这些ID,做一套$反对collection2查询。

虽然,我不得不问为什么你会有一个没有唯一ID的表。

0

使用经典的RDBMS,您建立了基础,然后编写查询。

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

0

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