当前位置: 首页 > 知识库问答 >
问题:

MongoDB聚合V/S简单查询性能?

苏志
2023-03-14

我重新定义了这个问题,因为我认为这个问题应该与这个in-mongoDB-know-index-of-array-element-matched-with-in-operator分开。

另外,我提取了30,000个样本集合,并尝试使用$match和find查询运行聚合,我发现聚合比find查询快一点,因为聚合需要180ms才能执行,而find需要220 ms才能执行。

请帮帮我,伙计们,这对我真的很有帮助。

共有1个答案

金珂
2023-03-14

MongoDB中的聚合框架类似于SQL中的联接操作。聚合管道通常是资源密集型操作。因此,如果您的工作对简单查询感到满意,您应该首先使用该查询。

但是,如果绝对必要,则可以在需要从多个集合中获取数据的情况下使用聚合管道。

 类似资料:
  • 我使用Nodejs和MongoDB与expressjs和mongoose库,创建一个具有用户、文章和评论模式的博客API。下面是我使用的模式。

  • 主要内容:aggregate() 方法,管道MongoDB 中的聚合操作用来处理数据并返回计算结果,聚合操作可以将多个文档中的值组合在一起,并可对数据执行各种操作,以返回单个结果,有点类似于 SQL 语句中的 count(*)、group by 等。 aggregate() 方法 您可以使用 MongoDB 中的 aggregate() 方法来执行聚合操作,其语法格式如下: db.collection_name.aggregate(aggr

  • 假设我有一个MongoDB集合,其中包含以下信息: 我想计算按州分组的订单总价的总和,其中项目为“苹果”,颜色为“红色”。我的问题是: 但是,我希望能够将我的结果cust\u id包含在\u id中,它是一个数组/映射/一些结构,其中包含构成我的合计的所有客户id的列表。因此,我希望我的输出包含 是否有办法处理此mongo聚合/查询?或者是一种更好的方式来构造此查询,以便我可以按州分组计算红苹果的

  • 但在我看来不对。有人能建议别的方法做这件事吗。

  • 有人能帮我把这个mongoDB聚合转换成Spring数据mongo吗? 我试图在每个邀请函文件中获得未提醒与会者的电子邮件列表。 让它在mongo shell中运行,但需要在Spring data mongo中运行。 我的shell查询 ) 正如你们所看到的,这是我提出的,它在管道的项目和团队运作中并没有像预期的那样发挥作用。下面给出了生成的查询。 聚合对象创建 它创建以下查询 聚合对象生成的查询

  • >[danger] 注意!!! 使用聚合功能时,必须给它一个别名,以便能够从模型中访问它 > 聚合函数的计算,都是排除了 null 值,所以COUNT( id ) 一般推荐用非空的主键来计算 COUNT 计算数量 const { Sequelize } = app; // 查询班级总人数,按照姓名聚合 const ret = await Student.findAll({ attribut