0

嗨,我有一个 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 查询?

谢谢

4

3 回答 3

0

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

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

于 2013-10-31T15:36:45.567 回答
0

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

于 2013-11-27T06:11:26.617 回答
0

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

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

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

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

于 2013-10-31T15:21:02.367 回答