问题标签 [aggregation-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1077 浏览

mongodb - 是否可以在 MongoDB 中迭代 mapReduce

我在 MongoDB 中使用 mapReduce 为来自他/她的朋友网络的用户生成趋势歌曲。所以我遍历所有用户并检查 user_id 是否存在于他们的朋友数组中,如果存在我发出他们的歌曲然后合并整个发出的歌曲以找到他所有朋友网络的热门歌曲。

问题是我需要遍历所有用户以找到集合中每个用户的(网络趋势歌曲)。我怎样才能做到这一点,有没有像嵌套 mapReduce 这样的方法。还是我必须从应用程序层进行迭代,例如通过 for 循环执行 mapReduce!

我当前使用的 mapReduce 是这个:

0 投票
3 回答
76440 浏览

mongodb - 如何在 MongoDB 的 $match 中使用聚合运算符(例如 $year 或 $dayOfMonth)?

我有一个包含 created_date 属性的文档集合。我想通过聚合管道发送这些文档以对它们进行一些工作。理想情况下,我想在对它们进行任何其他工作之前使用 $match 过滤它们,以便我可以利用索引但是我无法弄清楚如何在我的$匹配表达式。

有一些关于如何在 $project 操作中使用运算符的示例,但我担心通过将 $project 作为我管道中的第一步,我将无法访问我的索引(MongoDB 文档表明第一个表达式必须是 $match 才能利用索引)。

样本数据:

我想通过一个聚合管道运行它,以获取 9 月发布的所有帖子的总评论数

这有效,但匹配失去了对更复杂查询的任何索引的访问权限:

0 投票
1 回答
1176 浏览

mongodb - MongoDB 聚合查询等价于 PostsgreSQL

这个问题有两个部分。集合结构为:

_id: MongoID,
agent_id: string,
result: string,
created_on: ISO DATE,
...其他字段...

第一部分:
期望的输出:每个 agent_id 的一个结果和带有计数的结果组合:使用 PostgreSQL 的具有等效 SQL 的 TUPLE 表示。

我想出了下面的 mongo 查询....我想我有一个概念或语法错误。文档说要在管道的早期使用 $match:,但是虽然 $match 在我自己运行它时限制了查询,但只要我添加 $group 我就会得到很多结果。此外,我似乎无法理解如何按多个字段进行分组。如何编辑下面的查询以获得与上面的 SQL 查询类似的结果?

第 2 部分)第一个结果集就足够了,但不是最优的。使用 PostgreSQL,我可以实现如下结果集:

我可以在 Postgresql 中使用数组数据类型和 set_to_array 函数(自定义函数)来执行此操作。Pg 特定的 SQL 是:

我相信 mongodb 中的等效数据结构如下所示:

是否可以使用 mongodb 聚合框架实现这些所需的压缩结果?

0 投票
3 回答
69672 浏览

mongodb - Mongodb解释聚合框架

MongoDB中的聚合框架有解释功能吗?我在文档中看不到它。

如果没有,是否有其他方法可以检查,查询如何在聚合框架中执行?

我知道找到你就行

但是使用聚合框架我得到一个错误

0 投票
1 回答
13161 浏览

mongodb - MongoDB 分组

如何在 Mongodb 中进行查询以查找用户对某个位置的进入和退出组的计数。上述集合有许多用户可以进入或退出的位置。

我正在尝试这样的事情但没有成功,请参见此处

0 投票
1 回答
1372 浏览

mongodb - mapReduce/Aggregation:按嵌套文档中的值分组

想象我有一个这样的集合:

我想获得每个部门类型的计数,例如:

为此,我已经尝试了几乎所有方法,但是我在网上找到的所有示例都比较简单,其中 group by 是在文档根级别的字段上完成的。相反,我在这里尝试按部门类型进行分组,这似乎破坏了我迄今为止发现的所有内容。

关于如何使用 Mongoose 的聚合实现或 mapreduce 来做到这一点的任何想法?

理想情况下,我想排除所有 count <= 1 的部门类型,并按部门类型对结果进行排序。

谢谢大家!

0 投票
1 回答
780 浏览

mongodb - Mongoose 聚合中未显示字段

我正在尝试计算所有不同部门的数量。我希望结果包含 deptType、deptName 和计数。分组有效,结果显示 deptType 和 dCount,但不显示 deptName。知道为什么吗?

我的数据如下所示:

和我的猫鼬聚合命令是这样的:

谢谢大家。

0 投票
3 回答
19349 浏览

mongodb - MongoDB 聚合框架 $group 可以返回一个值数组吗?

MongoDB 中输出格式化的聚合函数有多灵活?

数据格式:

现在我正在使用这个聚合函数来返回一个 DateTime 数组、一个指标数组和一个计数:

这很好,而且非常快,但是有没有办法格式化输出,所以每个日期时间/指标都有一个数组?像这样:

这将大大简化前端,因为这是图表代码所期望的格式。

0 投票
1 回答
10181 浏览

java - Java中的MongoDB聚合查询

我是 Java 新手,想知道如何在 Java 中构建 mongoDB 查询。

谢谢你的帮助。

0 投票
7 回答
32812 浏览

mongodb - MongoDB 将两个字段中的字符串连接到第三个字段中

如何连接来自两个字符串字段的值并将其放入第三个字段?

我试过这个:

但这似乎不起作用,并抛出not ok for storage.

我也试过这个:

但即使这样也显示了同样的错误not ok for storage

我只想在 mongo 服务器上而不是在我的应用程序中连接。