看来,这确实是非常难得一件事!否则官方也早该把对 sql 的支持内置了;即便没内置,众多的开源贡献者也应该在外面给出了可用的补丁。 关系数据库数据模型简单,都是行列分明的单层二维表;所以描述它的计算的语言(SQL)就相对简单;而 mong
看来,这确实是非常难得一件事!否则官方也早该把对 sql 的支持内置了;即便没内置,众多的开源贡献者也应该在外面给出了可用的补丁。
关系数据库数据模型简单,都是行列分明的单层二维表;所以描述它的计算的语言(SQL)就相对简单;而 mongoDB 里是多层嵌套的结构,属性字段任意出现。光是描述清楚选取哪一层的哪些字段信息,都是件不容易的事,再加上进一步的分组、聚合、条件、排序运算,复杂程度指数级上升,这也是多年来基于 MonGoDB 数据库计算一直困难的根本原因。
如果用彻底支持集合操作的集算器 SPL 语言,处理这种多层嵌套的数据结构就比较容易了,直接看代码:
A | |
2 | =mongo_shell(A1,"computer.find()").fetch() |
3 | =A2.new(_id:ID,income.array().sum():INCOME,output.array().sum():OUTPUT) |
这和理想中的SQL基本上一模一样了:
SELECT _id:ID,income.array().sum():INCOME,output.array().sum():OUTPUT FROM computer
而做同样查询的 MongoDB 脚本则是如下的一个代码规模:
MongoDB里整套的查询计算功能,都能用简洁的SPL脚本实现,就不一一在这里列举了。上面的例子摘自《玩转 Mongo 计算》
SPL能很方便地嵌入到JAVA应用,可参考《Java 如何调用 SPL 脚本》。
具体使用方法可参考 《如何使用集算器》。
--结束END--
本文标题: MongoDB 如何支持类 SQL 查询
本文链接: https://lsjlt.com/news/6929.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0