返回顶部
首页 > 资讯 > 数据库 >MongoDB 中怎么计算子查询
  • 348
分享到

MongoDB 中怎么计算子查询

2024-04-02 19:04:59 348人浏览 安东尼
摘要

这篇文章给大家介绍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 中怎么计算子查询

如果有集算器的协助就简单多了,它是专门为结构化、半结构化数据计算设计的编程语言,查询、子查询、分组后过滤等等都有函数类库可以用,能够很好的弥补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脚本有使用和获得它的方法。

关于MongoDB 中怎么计算子查询就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: MongoDB 中怎么计算子查询

本文链接: https://lsjlt.com/news/56510.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MongoDB 中怎么计算子查询
    这篇文章给大家介绍MongoDB 中怎么计算子查询,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MongoDB在某些方面确实比关系型数据库更强 (比如对追...
    99+
    2024-04-02
  • MongoDB 怎么计算子查询
    MongoDB在某些方面确实比关系型数据库更强 (比如对追加型日志数据的吞吐能力),但结构化计算能力方面较弱。比如:MongoDB不支持子查询,碰到这些复杂的运算就只能先将数据读出后再计算,而用Java等语言编写这类计算也不是很简单。 比...
    99+
    2018-03-14
    MongoDB 怎么计算子查询
  • 集算器协助MongoDB计算之子查询
    MongoDB不支持子查询,碰到这些复杂的运算就只能先将数据读出后再计算,而用Java等语言编写这类计算也不是很简单,这时可以考虑用集算器esProc辅助实现。下面我们通过一个例子来看一下具体做法。Mong...
    99+
    2024-04-02
  • mysql中怎么实现查询和子查询
    这篇文章给大家介绍mysql中怎么实现查询和子查询,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、查询的五种子句        wher...
    99+
    2024-04-02
  • 怎么在oracle中查询操作子查询
    怎么在oracle中查询操作子查询?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、子查询语法SELECT select_l...
    99+
    2024-04-02
  • Mysql---子查询的三种查询方式( 表子查询,条件子查询,列中子查询)
    mysql子查询 子查询分为: 列中子查询 单列单行表子查询 必须有别名条件子查询 单行单列 多行单列 下列示例表结构: grade表: result表: student表: subject表:...
    99+
    2023-09-04
    mysql sql 数据库
  • MySQL中怎么计算查询结果的总数
    要计算查询结果的总数,可以使用COUNT(*)函数来统计查询结果集中的行数。 例如,以下是一个示例查询,用于计算一个表中满足特定条件...
    99+
    2024-04-09
    MySQL
  • MongoDB的查询计划与执行计划怎么配置
    MongoDB的查询计划和执行计划是由MongoDB的查询优化器和执行引擎自动处理的,通常情况下不需要手动配置。不过,你可以通过使用...
    99+
    2024-05-07
    MongoDB
  • mysql中怎么实现子查询
    今天就跟大家聊聊有关mysql中怎么实现子查询,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 MySQl从4.11版后已经完全支持嵌套查询...
    99+
    2024-04-02
  • Mysql中怎么实现子查询和联合查询
    Mysql中怎么实现子查询和联合查询,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。查询: 在select查...
    99+
    2024-04-02
  • mongodb怎么查询并统计数组内个数
    在 MongoDB 中,可以使用聚合管道操作符 $size 来统计数组内的元素个数。以下是一个简单的例子,假设我们有一个名为 pro...
    99+
    2024-04-09
    mongodb
  • mongodb怎么查询数据
    mongodb 数据查询可使用以下命令:find():按条件查询文档。查询条件:指定条件,如文档属性、数组等。投影:指定返回字段,如 { title: 1, author: 1 }。排序...
    99+
    2024-04-02
  • mongodb怎么查询分页
    mongodb 提供多种分页查询方法:使用 skip() 和 limit() 方法:跳过指定数量的数据并返回指定数量的数据。使用 aggregate() 管道:提供更灵活的分页选项,可与...
    99+
    2024-05-30
    mongodb
  • mongodb中怎么实现连表查询
    今天就跟大家聊聊有关mongodb中怎么实现连表查询,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.mongodb正则匹配 name: ...
    99+
    2024-04-02
  • MongoDB中怎么支持类 SQL 查询
    这篇文章给大家介绍MongoDB中怎么支持类 SQL 查询,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。关系数据库数据模型简单,都是行列分明的单层二维表;所以描述它的计算的语言(SQL...
    99+
    2024-04-02
  • MongoDB中怎么查询数组下标
    这篇文章将为大家详细讲解有关MongoDB中怎么查询数组下标,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  Mongodb的集合b中,保存了姓名...
    99+
    2024-04-02
  • mysql子查询怎么写
    mysql 子查询是一个嵌套在另一个查询中的查询,用于执行多个查询并利用其结果筛选或修改外部查询。子查询的类型包括相关、不相关和 cte。子查询有助于简化复杂查询、提高效率,并实现高级数...
    99+
    2024-05-21
    mysql
  • oracle子查询怎么用
    子查询是嵌套在主查询中的独立查询,用于提供数据。oracle支持相关和非相关子查询,语法为:(子查询)。使用步骤包括:确定数据需求、编写子查询、嵌入主查询。优点包括:提高性能、简化查询、...
    99+
    2024-05-21
    oracle
  • mysql中怎么实现exists子查询
    这篇文章给大家介绍mysql中怎么实现exists子查询,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 子查询可以分为:from where 和 exists子查询  分类表...
    99+
    2024-04-02
  • SQL Server中怎么实现子查询
    这篇文章将为大家详细讲解有关SQL Server中怎么实现子查询,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、子查询概念介绍子查询可以嵌套在SELEC&...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作