我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MongoDB 如何支持类 SQL 查询

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MongoDB 如何支持类 SQL 查询

MongoDB 如何支持类 SQL 查询

看来,这确实是非常难得一件事!否则官方也早该把对 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 脚本则是如下的一个代码规模:

2png

MongoDB里整套的查询计算功能,都能用简洁的SPL脚本实现,就不一一在这里列举了。上面的例子摘自《玩转 Mongo 计算》

 

SPL能很方便地嵌入到JAVA应用,可参考《Java 如何调用 SPL 脚本》。

具体使用方法可参考 《如何使用集算器》。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MongoDB 如何支持类 SQL 查询

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MongoDB 如何支持类 SQL 查询

看来,这确实是非常难得一件事!否则官方也早该把对 SQL 的支持内置了;即便没内置,众多的开源贡献者也应该在外面给出了可用的补丁。 关系数据库数据模型简单,都是行列分明的单层二维表;所以描述它的计算的语言(SQL)就相对简单;而 MongoDB 里是多层嵌套的
MongoDB 如何支持类 SQL 查询
2017-05-15

HBase如何支持高效的二级索引查询

HBase支持高效的二级索引查询主要通过两种方式实现:基于协处理器的方案和非协处理器方案。基于协处理器的二级索引方案协处理器(Coprocessor):HBase的协处理器允许在RegionServer上运行自定义代码,用于管理数据。通过
HBase如何支持高效的二级索引查询
2024-10-22

mongodb如何查询区间

在MongoDB中查询区间可以使用$gt(大于)、$lt(小于)、$gte(大于等于)、$lte(小于等于)等比较运算符来实现。假设我们有一个名为"students"的集合,其中包含了学生的成绩信息。如果我们想查询成绩在80到90之间的学生
2023-09-06

如何查看电脑支不支持win11

这篇文章主要介绍了如何查看电脑支不支持win11的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何查看电脑支不支持win11文章都会有所收获,下面我们一起来看看吧。方法一:healthcheck1、我们可以通过
2023-07-01

mongodb如何带条件查询

在MongoDB中,可以使用`find()`方法来执行带条件查询。以下是一些常见的带条件查询示例:1. 等于条件查询:```db.collection.find({ field: value })```2. 大于条件查询:```db.col
2023-09-04

Teradata如何支持多种数据格式和数据类型的存储与查询

Teradata支持多种数据格式和数据类型的存储与查询,包括结构化数据和非结构化数据。Teradata提供了多种数据类型用于存储不同类型的数据,例如整数、浮点数、字符串、日期时间等。此外,Teradata还支持嵌套数据类型,如数组、结构体、
Teradata如何支持多种数据格式和数据类型的存储与查询
2024-04-09

如何使用SQL语句在MongoDB中执行复杂查询?

如何使用SQL语句在MongoDB中执行复杂查询?摘要:MongoDB是一种流行的NoSQL数据库,其查询语言与关系型数据库SQL语言不同。本文将介绍如何使用SQL语句在MongoDB中执行复杂查询,并提供具体的代码示例。引言:在Mongo
如何使用SQL语句在MongoDB中执行复杂查询?
2023-12-17

如何进行MongoDB查询文档

如何进行MongoDB查询文档,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。查询文件使用inventory集合。插入inventory 集合内容,请运行以下命令:db.inve
2023-06-02

如何在MongoDB中查询数据

本篇文章给大家分享的是有关如何在MongoDB中查询数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。方法一:使用find()方法查询指定的键。db.student.find(
2023-06-14

如何查看linux是否支持ipv6

这篇文章主要讲解了“如何查看linux是否支持ipv6”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何查看linux是否支持ipv6”吧!两种查看方法:1、执行“ifconfig”命令显示
2023-06-30

mongodb如何查询所有集合

在MongoDB中,可以使用以下命令查询所有的集合:使用show collections命令可以列出当前数据库中所有的集合,例如:> show collectionscollection1collection2collection3
mongodb如何查询所有集合
2024-04-10

mongodb如何查询时间条件

在 MongoDB 中,您可以使用 `$gt`、`$lt`、`$gte`、`$lte` 操作符来查询时间条件。这些操作符分别表示大于、小于、大于等于和小于等于。以下是一些示例:1. 查询大于某个时间点的文档:```db.collection
2023-08-31

编程热搜

目录