提高一个字段与多个集合比较的效率 Mongodb Jdbc
Posted
技术标签:
【中文标题】提高一个字段与多个集合比较的效率 Mongodb Jdbc【英文标题】:Increase efficiency in comparing one field with multiple collection Mongodb Jdbc 【发布时间】:2013-10-31 11:22:43 【问题描述】:嗨,我有一个 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 查询??
谢谢
【问题讨论】:
【参考方案1】:mongdb 不支持这样的连接,因此您需要执行多个查询。可能是这样的:
db.collection1.distinct( 'id', y: $in: [...] )
然后获取这些 ID 并对 collection2 执行另一个 $in 查询。
不过,我不得不问为什么你会有一个没有唯一 ID 的表。
【讨论】:
【参考方案2】:使用经典 RDBMS,您可以对基础进行建模,然后编写查询。
对于 MongoDB,情况往往相反:您列出您的用例,即访问模式,然后根据您的需要对数据进行建模。
【讨论】:
【参考方案3】:Mongo Java 驱动程序不支持 SQL 或 JDBC API。 MongoDB 不支持连接。如果您想使用 SQL,可以使用 JDBC 驱动程序:JDBC Driver for MongoDB。您还可以通过使用嵌套将两个集合合并为一个来避免连接。
【讨论】:
以上是关于提高一个字段与多个集合比较的效率 Mongodb Jdbc的主要内容,如果未能解决你的问题,请参考以下文章