问题标签 [mongodb-aggregation]

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 回答
137 浏览

mongodb - MongoDB 聚合,用于将值重塑或分组为字段名称和月份

我的数据格式为:

然后我汇总数据以计算每月“P”、“I”或“D”的数量,如下所示:

这给了我结果:

如何对这些数据进行分组或投影,以格式表示我的数据?

我真的没有找到一种方法来使用“Prom”的值作为管道中下一个聚合的键。按月分组这个结果也是有问题的。本质上,我们想要做的是按月从原始数据中创建一个净推荐值,其中 P - 推荐者,D - 批评者,I - 无动于衷。

0 投票
1 回答
903 浏览

mongodb - 基于 ISO 日期值的 Mongo 聚合 $filter

我有以下文件

为此,我有一个 mongo 查询,我只想返回尚未发生的履行列表。这意味着date履行嵌入文档上的属性大于当前时间。

我无法弄清楚仅过滤date尚未发生的履行的正确方法是什么。

0 投票
0 回答
75 浏览

php - 聚合日期范围之谜

我有这种蒙戈

当我只'$gte'在匹配时使用(肯定有数据)时,谜团就来了,但如果我同时使用两者$gte$lte没有。

有什么线索吗?

更新:好的,所以它变得更奇怪了。如果我gte + lte在控制台上使用(完全相同的查询)它可以工作。如果我只使用 gte 并且“现在”日期控制台说没有结果(工作正常)并且 mongo 驱动程序返回结果,就好像我使用了“-30 天”日期一样。看起来很有趣。

已解决:仅适用于有同样问题的任何人,更新 mongo 驱动程序,一切正常!

0 投票
0 回答
3314 浏览

java - Spring mongodb:使用查找、投影和切片进行聚合

我有一个集合ref,包括

和一个集合item

在这里,我需要“加入”,也就是执行一个lookup到,并将字段和as的最后一项投影ref到返回文档的顶层,以返回itemfield1arrayarrayItem

使用 mongo shell,使用以下语句可以完美地工作:

现在,我必须使用 Spring 和 Spring-MongoDB 在 Java 中实现这一点,我曾尝试使用此聚合:

由于查找仅在 Spring-Mongo 1.9.2 中可用,我不得不自己重建它:

问题是 slice 命令尚未作为 Aggregation 中的方法实现(并且不在 1.9.2 中),因此我需要按照DATAMONGO-1457project("slice", -1, 1).as("$arrayItem")中的建议进行调用。切片根本不执行,结果为空。arrayItem

我将 Spring 1.3.5 与 Spring MongoDB 1.8.4 和 MongoDB 3.2.8 一起使用。

0 投票
1 回答
3009 浏览

node.js - MongoDB 使用聚合 $lookup 连接两个集合或在 Node.js 中填充

这是两个集合的架构

我想activity.begin_date , registration.id , registration.email在同一个查询中。我能怎么做?我在互联网上找到了一些解决方案,但仍然不知道是使用填充还是聚合$lookup(这个似乎是新的)。

这是我尝试过的方法,但根本不起作用。

0 投票
1 回答
750 浏览

node.js - 在 MongoDB / mongoose 中排序和限制 $push 聚合的结果

我想对 $group 和 $push 的结果进行排序和限制。

假设我有一个在线订单系统。我想得到一个列表,其中包含每年按年份和产品数量排序的 3 个最订购产品。

返回的对象应该是这样的:

在猫鼬中,我可以按年份对数据进行分组:

它会给我所有的产品名称和数量,而不是排序。

我不知道如何对分组数据进行排序和限制。我试过 $sort, $limit, $each 没有成功。

0 投票
1 回答
8152 浏览

mongodb - MongoDB聚合:$lookup by _id,然后获取第一个元素值

当我这样做时$lookup,在我的情况下foreignField:"_id",我会在数组中找到找到的元素。$lookup这是完成检索fromUsertoUserusers集合中检索后输出中的一个文档:

如您所见fromUser, 和toUser是数组。如何投影fromUsertoUser而不是数组,它们只包含用户的userName,如下所示:

0 投票
1 回答
76 浏览

python - 具有相同电话号码的文档分组

我的数据库由一个大的集合组成。酒店数量(约 121,000 家)。

这就是我的收藏的样子:

每个文档可以有 1 个或多个电话号码,以“|”分隔 分隔符。

我必须将具有相同电话号码的文档组合在一起。

实时,我的意思是当用户打开特定酒店以在 Web 界面上查看其详细信息时,我应该能够显示与其链接的所有酒店,并按常用电话号码分组。

分组时,如果一家酒店链接到另一家酒店并且该酒店链接到另一家酒店,则应将所有 3 家酒店组合在一起。

示例:酒店 A 有电话号码 1|2,B 有电话号码 3|4,C 有电话号码 2|3,那么 A、B 和 C 应该组合在一起。

这是我用 Python 编写的一段代码。在这一个中,我尝试在 for 循环中执行线性搜索。到目前为止,我遇到了一些错误,但纠正后应该可以工作。

我需要一个优化版本,因为线性搜索的时间复杂度很差。

我对此很陌生,因此欢迎任何其他改进代码的建议。

谢谢。

0 投票
2 回答
19156 浏览

mongodb - 是否可以在 Mongodb 中的两个数据库之间进行 $lookup 聚合?

我正在尝试做这样的事情:

user并且organization在两个不同的数据库中。

如果这是不可能的,有什么替代方案?

0 投票
1 回答
494 浏览

c# - 使用 C# Fluent Aggregation Framework 的 MongoDB 异常

我正在尝试使用 C# 驱动程序中的 MongoDB 流式聚合语法编写一个非常简单的分组查询。

我按作者对文档进行分组并返回每个作者的计数。我不需要返回作者姓名,只需要返回计数。下面的代码可以编译,但是当我执行它时,我得到了这个异常:

命令聚合失败:组聚合字段名称“$sum”不能是操作员名称。

MongoDB版本:3.2.4

MongoDB C# 驱动程序版本:2.2.3.3