嗨,我有一个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查询?
由于
答案 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。您还可以通过使用嵌套将两个集合合并为一个来避免连接。