问题标签 [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.
mongodb - MongoDB 聚合,用于将值重塑或分组为字段名称和月份
我的数据格式为:
然后我汇总数据以计算每月“P”、“I”或“D”的数量,如下所示:
这给了我结果:
如何对这些数据进行分组或投影,以格式表示我的数据?
我真的没有找到一种方法来使用“Prom”的值作为管道中下一个聚合的键。按月分组这个结果也是有问题的。本质上,我们想要做的是按月从原始数据中创建一个净推荐值,其中 P - 推荐者,D - 批评者,I - 无动于衷。
mongodb - 基于 ISO 日期值的 Mongo 聚合 $filter
我有以下文件
为此,我有一个 mongo 查询,我只想返回尚未发生的履行列表。这意味着date
履行嵌入文档上的属性大于当前时间。
我无法弄清楚仅过滤date
尚未发生的履行的正确方法是什么。
php - 聚合日期范围之谜
我有这种蒙戈
当我只'$gte'
在匹配时使用(肯定有数据)时,谜团就来了,但如果我同时使用两者$gte
却$lte
没有。
有什么线索吗?
更新:好的,所以它变得更奇怪了。如果我gte + lte
在控制台上使用(完全相同的查询)它可以工作。如果我只使用 gte 并且“现在”日期控制台说没有结果(工作正常)并且 mongo 驱动程序返回结果,就好像我使用了“-30 天”日期一样。看起来很有趣。
已解决:仅适用于有同样问题的任何人,更新 mongo 驱动程序,一切正常!
java - Spring mongodb:使用查找、投影和切片进行聚合
我有一个集合ref
,包括
和一个集合item
在这里,我需要“加入”,也就是执行一个lookup
到,并将字段和as的最后一项投影ref
到返回文档的顶层,以返回item
field1
array
arrayItem
使用 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 一起使用。
node.js - MongoDB 使用聚合 $lookup 连接两个集合或在 Node.js 中填充
这是两个集合的架构
我想activity.begin_date , registration.id , registration.email
在同一个查询中。我能怎么做?我在互联网上找到了一些解决方案,但仍然不知道是使用填充还是聚合$lookup
(这个似乎是新的)。
这是我尝试过的方法,但根本不起作用。
node.js - 在 MongoDB / mongoose 中排序和限制 $push 聚合的结果
我想对 $group 和 $push 的结果进行排序和限制。
假设我有一个在线订单系统。我想得到一个列表,其中包含每年按年份和产品数量排序的 3 个最订购产品。
返回的对象应该是这样的:
在猫鼬中,我可以按年份对数据进行分组:
它会给我所有的产品名称和数量,而不是排序。
我不知道如何对分组数据进行排序和限制。我试过 $sort, $limit, $each 没有成功。
mongodb - MongoDB聚合:$lookup by _id,然后获取第一个元素值
当我这样做时$lookup
,在我的情况下foreignField:"_id"
,我会在数组中找到找到的元素。$lookup
这是完成检索fromUser
和toUser
从users
集合中检索后输出中的一个文档:
如您所见fromUser
, 和toUser
是数组。如何投影fromUser
,toUser
而不是数组,它们只包含用户的userName
,如下所示:
python - 具有相同电话号码的文档分组
我的数据库由一个大的集合组成。酒店数量(约 121,000 家)。
这就是我的收藏的样子:
每个文档可以有 1 个或多个电话号码,以“|”分隔 分隔符。
我必须将具有相同电话号码的文档组合在一起。
实时,我的意思是当用户打开特定酒店以在 Web 界面上查看其详细信息时,我应该能够显示与其链接的所有酒店,并按常用电话号码分组。
分组时,如果一家酒店链接到另一家酒店并且该酒店链接到另一家酒店,则应将所有 3 家酒店组合在一起。
示例:酒店 A 有电话号码 1|2,B 有电话号码 3|4,C 有电话号码 2|3,那么 A、B 和 C 应该组合在一起。
这是我用 Python 编写的一段代码。在这一个中,我尝试在 for 循环中执行线性搜索。到目前为止,我遇到了一些错误,但纠正后应该可以工作。
我需要一个优化版本,因为线性搜索的时间复杂度很差。
我对此很陌生,因此欢迎任何其他改进代码的建议。
谢谢。
mongodb - 是否可以在 Mongodb 中的两个数据库之间进行 $lookup 聚合?
我正在尝试做这样的事情:
user
并且organization
在两个不同的数据库中。
如果这是不可能的,有什么替代方案?
c# - 使用 C# Fluent Aggregation Framework 的 MongoDB 异常
我正在尝试使用 C# 驱动程序中的 MongoDB 流式聚合语法编写一个非常简单的分组查询。
我按作者对文档进行分组并返回每个作者的计数。我不需要返回作者姓名,只需要返回计数。下面的代码可以编译,但是当我执行它时,我得到了这个异常:
命令聚合失败:组聚合字段名称“$sum”不能是操作员名称。
MongoDB版本:3.2.4
MongoDB C# 驱动程序版本:2.2.3.3