7

有没有我可以使用类似 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

谢谢拉曼

4

8 回答 8

7

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

于 2013-03-21T19:21:11.503 回答
5

是的!

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

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

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

它也可以免费下载!

希望这可以帮助

于 2013-08-13T18:56:22.753 回答
2

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

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

于 2014-08-30T21:11:01.560 回答
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 应用程序。

于 2014-06-26T03:49:19.223 回答
1

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

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

于 2013-08-22T00:09:58.420 回答
1

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

于 2014-10-07T08:41:15.163 回答
-2

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

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

于 2012-04-10T20:00:36.990 回答
-2

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

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

于 2012-04-10T11:59:06.350 回答