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

MongoDB 怎么计算子查询

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

MongoDB 怎么计算子查询

MongoDB 怎么计算子查询

MongoDB在某些方面确实比关系型数据库更强 (比如对追加型日志数据的吞吐能力),但结构化计算能力方面较弱。比如:MongoDB不支持子查询,碰到这些复杂的运算就只能先将数据读出后再计算,而用Java等语言编写这类计算也不是很简单。

比如要处理这么个场景:查出订单信息,要求订单中的SELLERID必须是employee集合中STATE= California的员工id。如果写成sql就是:

Select * from orders where orders.sellerid in (select eid from employee where employee.state=’California’)。

orders的数据量较大无法一次取出,employee的数据量较小,最终结果的数据量也较小。部分数据如下:

MongoDB Collection orders:

{ "_id" : ObjectId("5434f88dd00ab5276493e270"), "ORDERID" : 1, "CLIENT" : "UJRNP

","SELLERID" : 17, "AMOUNT" : 392, "ORDERDATE" : "2008/11/2 15:28" }

{ "_id" : ObjectId("5434f88dd00ab5276493e271"), "ORDERID" : 2, "CLIENT" : "SJCH"

, "SELLERID" : 6, "AMOUNT" : 4802, "ORDERDATE" : "2008/11/9 15:28" }

{ "_id" : ObjectId("5434f88dd00ab5276493e272"), "ORDERID" : 3, "CLIENT" : "UJRNP

","SELLERID" : 16, "AMOUNT" : 13500, "ORDERDATE" : "2008/11/5 15:28" }

{ "_id" : ObjectId("5434f88dd00ab5276493e273"), "ORDERID" : 4, "CLIENT" : "PWQ",

 "SELLERID" : 9, "AMOUNT" : 26100, "ORDERDATE" : "2008/11/8 15:28" }

MongoDB Collection employee:

{ "_id" : ObjectId("5437413513bdf2a4048f3480"), "EID" : 1, "NAME" : "Rebecca", "

SURNAME" : "Moore", "GENDER" : "F", "STATE" : "California", "BIRTHDAY" : "1974-1

1-20","HIREDATE" : "2005-03-11", "DEPT" : "R&D", "SALARY" : 7000 }

{ "_id" : ObjectId("5437413513bdf2a4048f3481"), "EID" : 2, "NAME" : "Ashley", "S

URNAME" : "Wilson", "GENDER" : "F", "STATE" : "New York", "BIRTHDAY" : "1980-07-

19","HIREDATE" : "2008-03-16", "DEPT" : "Finance", "SALARY" : 11000 }

{ "_id" : ObjectId("5437413513bdf2a4048f3482"), "EID" : 3, "NAME" : "Rachel", "S

URNAME" : "Johnson", "GENDER" : "F", "STATE" : "New Mexico", "BIRTHDAY" : "1970-

12-17","HIREDATE" : "2010-12-01", "DEPT" : "Sales", "SALARY" : 9000 }

计算结果:

 

 

 

如果有集算器的协助就简单多了,它是专门为结构化、半结构化数据计算设计的编程语言,查询、子查询、分组后过滤等等都有函数类库可以用,能够很好的弥补MongoDB在结构化方面计算能力的不足。比如上面问题,4行就搞定了:

 

A

1

=mongo_open("mongodb://localhost:27017/test?user=test&password=test")

2

=mongo_shell(A1,"orders.find(,{_id:0})")

3

=mongo_shell@x(A1,"employee.find({STATE:"California"},{_id:0})").fetch()

4

=A2.select(A3.(EID).sort().pos@b(SELLERID)).fetch()

其实还有很多情况用MongoDB处理结构化计算不太方便,但有集算器SPL的辅助却很简单,感兴趣可以参考:玩转Mongo计算、简化MongoDB关联运算、辅助MongoDB计算

集算器还很容易嵌入到Java应用程序中,Java如何调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器。

免责声明:

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

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

MongoDB 怎么计算子查询

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

下载Word文档

猜你喜欢

MongoDB 怎么计算子查询

MongoDB在某些方面确实比关系型数据库更强 (比如对追加型日志数据的吞吐能力),但结构化计算能力方面较弱。比如:MongoDB不支持子查询,碰到这些复杂的运算就只能先将数据读出后再计算,而用Java等语言编写这类计算也不是很简单。 比如要处理这么个场景:查
MongoDB 怎么计算子查询
2018-03-14

MongoDB的查询计划与执行计划怎么配置

MongoDB的查询计划和执行计划是由MongoDB的查询优化器和执行引擎自动处理的,通常情况下不需要手动配置。不过,你可以通过使用explain()方法来查看MongoDB的查询计划和执行计划。例如,你可以在查询语句后面加上explai
MongoDB的查询计划与执行计划怎么配置
2024-05-07

mongodb怎么查询分页

mongodb 提供多种分页查询方法:使用 skip() 和 limit() 方法:跳过指定数量的数据并返回指定数量的数据。使用 aggregate() 管道:提供更灵活的分页选项,可与其他聚合操作结合使用。使用游标:允许按需以迭代方式访问
mongodb怎么查询分页
2024-05-30

mongodb怎么查询并统计数组内个数

在 MongoDB 中,可以使用聚合管道操作符 $size 来统计数组内的元素个数。以下是一个简单的例子,假设我们有一个名为 products 的集合,其中包含一个名为 tags 的数组字段:db.products.aggregate([
mongodb怎么查询并统计数组内个数
2024-04-09

mysql子查询怎么写

mysql 子查询是一个嵌套在另一个查询中的查询,用于执行多个查询并利用其结果筛选或修改外部查询。子查询的类型包括相关、不相关和 cte。子查询有助于简化复杂查询、提高效率,并实现高级数据操作。什么是 MySQL 子查询MySQL 子查询
mysql子查询怎么写
2024-05-21

oracle子查询怎么用

子查询是嵌套在主查询中的独立查询,用于提供数据。oracle支持相关和非相关子查询,语法为:(子查询)。使用步骤包括:确定数据需求、编写子查询、嵌入主查询。优点包括:提高性能、简化查询、提供筛选和聚合灵活性。Oracle 子查询:简介和使用
oracle子查询怎么用
2024-05-21

计算机软考证书查询怎么做?计算机软考证书查询方法

计算机软考证书查询怎么做?计算机软考证书怎么查询?计算机软考证书的查询方法是很多考生成绩合格后关心的问题,今天我们就整理了计算机软考证书查询方法的内容,希望能帮助到各位考生。
计算机软考证书查询怎么做?计算机软考证书查询方法
2024-09-18

怎么使用golang查询MongoDB

这篇文章主要介绍了怎么使用golang查询MongoDB的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用golang查询MongoDB文章都会有所收获,下面我们一起来看看吧。MongoDB的特性Mongo
2023-07-05

mongodb怎么查询最小值

在MongoDB中,可以使用`$min`操作符来查询集合中的最小值。语法如下:```javascriptdb.collection.aggregate([{$group: {_id: null,minValue: { $min: "$fie
2023-09-06

mongodb怎么查询耗时长

在MongoDB中,可以使用以下方法来查询耗时长的操作:1. 使用explain()方法:explain()方法可以返回查询操作的详细执行计划,包括查询的索引使用情况、扫描文档数等信息。可以通过检查explain()方法返回的结果来确定查询
2023-09-04

mongodb怎么查询key的值

在MongoDB中,可以使用`find`方法来查询文档中指定键的值。例如,假设有一个名为`users`的集合,其中每个文档都包含`name`和`age`字段,我们可以使用以下方式查询`name`键的值:```javascriptdb.use
2023-08-23

mongodb怎么查询时间轴

在MongoDB中,可以使用聚合框架来查询时间轴。以下是一个示例查询时间轴的步骤:1. 使用`$match`阶段筛选出特定的文档。例如,假设我们有一个名为`events`的集合,其中包含了有关事件的文档。我们可以使用`$match`阶段来筛
2023-08-31

MySQL子查询怎么定义

本篇内容主要讲解“MySQL子查询怎么定义”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL子查询怎么定义”吧!定义:select语句中嵌套select语句,被嵌套的select语句是子查
2022-11-30

oracle子查询怎么关闭

关闭子查询可以提高 oracle 复杂查询的性能:使用 join 将子查询重写为 join。在合适的情况下使用 exists 运算符。创建物化视图来存储子查询结果。使用 common table expressions (cte)。为连接字
oracle子查询怎么关闭
2024-05-30

sql子查询怎么实现

实现 sql 子查询的步骤:确定子查询的目的:检索所需数据。编写子查询:使用 select 语句检索列和筛选条件。嵌入子查询:将子查询括在主查询中作为条件或运算符。连接子查询:使用关系运算符连接子查询和主查询的列或条件。执行查询:检索数据。
sql子查询怎么实现
2024-06-03

编程热搜

目录