通过类sql语法访问Mongodb

问题描述 投票:0回答:8

是否有任何库可以让我使用类似于 sql 的语法来访问 mongodb。

示例

use db
select * from table1
insert into table1 values (a,b,c)
delete from table
select a,b,count(*) from table1 group by a,b
select a.field1,b.field2 from a,b where a.id=b.id

谢谢 拉曼

mongodb
8个回答
7
投票

仅当您执行极其简单的 SQL 查询时,学习曲线才很小。如果您的 SQL 查询范围是“select * from X”,那么 MongoDB 看起来是一个绝妙的主意,可以消除所有过于复杂的 SQL。但如果你需要执行左外连接、测试空值、检查范围、子选择、分组和求和,那么在迁移到 Mongo 后,你的办公桌很快就会出现一个圆形的凹痕。令人作呕的妙语是,有一半的时间,你想要做的事情无法在 Mongo 界面中完成。 Mongo 代表了一个大胆的新世界,其中数据库不再执行聚合和查询优化之类的操作,而是仅存储数据,所有魔力都是通过缓慢地检索所有内容、将其存储在应用程序内存中并在代码中完成所有这些操作来完成的。


5
投票

是的!

一家名为 UnityJDBC 的公司为 mongodb 制作了 JDBC 驱动程序。 与 mongo java 驱动程序不同,此 JDBC 驱动程序允许您针对 MongoDB 运行 SQL 查询,并且任何使用 JDBC 的 Java 应用程序都支持该驱动程序。

要下载此驱动程序,请访问...

http://www.unityjdbc.com/mongojdbc/mongo_jdbc.php

它也可以免费下载!

希望这有帮助


2
投票

MoSQL可能会满足您的需求。它将要求您运行一个新的 PostgreSQL 实例,但从那里您可以使用 SQL 查询整个 Mongo 数据集。

“MoSQL 将 MongoDB 数据库集群的内容导入 PostgreSQL 实例,使用 oplog tailer 使 SQL 镜像保持最新状态。这使您可以针对 MongoDB 数据库运行生产服务,然后运行离线分析或报告使用 SQL 的全部功能。”


1
投票

看看这个最近的项目:http://www.mongosql.com/。 过去几周我一直在研究它,它看起来很有希望。

对于那些质疑 SQL 对 MongoDB 有用性的人,请考虑许多组织中大量技术不太熟练的用户,例如业务分析师,他们可能了解 SQL,但不想跳到 JavaScript和 JSON。 像 mongoSQL 这样的工具可以帮助推动 MongoDB 在组织中的采用。


1
投票

有一些解决方案,但几乎所有解决方案都无法以“关系”思维的 ODBC/JDBC 应用程序和用户希望/要求的方式真正代表 MongoDB 数据模型。最近发布的商业产品可以解决这些挑战

ODBC: http://www.progress.com/products/datadirect-connect/odbc-drivers/data-sources/mongodb

JDBC: http://www.progress.com/products/datadirect-connect/jdbc-drivers/data-sources/mongodb

为了满足 ODBC/JDBC (SQL) 访问的需求...尽管对于使用 Mongo 客户端编写新应用程序存在强烈的争论,但市场仍然强烈需要基于 ODBC/JDBC 和 SQL 的高质量 MongoDB 访问。 这种需求主要源于所有依赖 ODBC/JDBC 连接且不提供与 MongoDB 的本机集成的报告、分析和 BI 应用程序。


1
投票

免费的NoSQL Viewer支持将SQL查询转换为MongoDB shell语法。此外,在 SQL Viewer 中,您甚至可以使用 SQL SELECT 语句来查询 MongoDB 集合数据,而无需了解 MongoDB 查询语法。在此处查看 NoSQL 查看器 www.spviewer.com/nosqlviewer.html


-2
投票

Mongodb 及其当前驱动程序不支持直接的类似 SQL 的语法。 然而,所有操作都可以通过驱动程序特定操作轻松完成。 以下是 mongodb 操作到相应 SQL 查询的简要映射:

http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart


-2
投票

有几个项目正在进行中,旨在模拟 MongoDB 的 SQL 接口。虽然它们提供了熟悉的界面,但通常应该避免使用它们。它们在一个根本上有缺陷的前提下运行,因为它们解析字符串并将它们转换为方法调用。

使用 MongoDB 后,您会发现使用类和方法的方法是一个更易于访问的接口,因为它的工作方式与应用程序的所有其他部分完全相同。是的,刚开始时有一个小的学习曲线,但在大多数情况下,MongoDB 中的界面会按照您期望的方式工作。

© www.soinside.com 2019 - 2024. All rights reserved.