问题标签 [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 - 在 mongo 聚合 $lookup 查询中使用数组第一个字段来匹配文档
我想使用我的数组字段第 0 个值使用 Mongo 聚合 $lookup 查询在销售文档中查找匹配项。这是我的查询:
结果 :
此查询将返回一个匹配项,但是当我检查它不是匹配项时。我不明白为什么会这样,当我从查询中删除第 0 部分时,它返回空白数组。像这样:
saleCategoryId 也是一个包含 categoryKey 数组的数组字段。
请帮忙。
mongodb - Group by day/month/week basis on the date range
This is in reference to this question.
This is my data set:
I want to be able to filter basis on week or month basis on the date range.
How would I do that in mongo?
This was the answer given for grouping by days.
mongodb - 如何处理 mongo 文档并在数组中获取字段明智的数据
目前,我遇到了处理 mongodb 文档并获取字段明智值的问题。例如,假设 mongo 包含以下文档:
预期输出:
是否可以以上述格式从 mongo 检索数据?我不想写一些 javascript 函数来处理这个。查看通过使用 mongo 函数和 find 查询来检索数据。
mongodb - 组合来自不同聚合查询的结果
如果您有 3 个基于 3 个不同集合的不同 MongoDb 聚合查询,每个查询都为公司中的该部门计算一个分数,那么如何combine / $project
使用查询将结果合并为 1 个组合执行报告,而不存储单个聚合结果。
本质上,我可以在不同的集合上运行并行聚合管道查询并将结果组合到最终管道中而不存储中间结果吗?
node.js - 使用 mongo 聚合从 mongo 中的集合中填充
样本文件
我如何访问name
和subname
从complete
哪里_id
匹配?
mongodb - MongoDB——通过多个键查找重复文档
我有一个包含如下文档的集合:
我需要在此集合中查找包含注释和 url_key 的重复值的记录。
我可以轻松地为相同的单个键(例如:评论)生成(使用聚合)重复记录,但我不知道如何为多个键分组/聚合。
这是我当前的聚合管道:
mongodb - MongoDB聚合管道问题
我是 mongoDB 的新手,很难理解聚合管道。
我创建了一个数据库,其中包含有关我的股票交易的信息。在精简版中,我的投资组合集合中的一个文档看起来有点像这样
]
因此,对于每一天,我都会跟踪我管理的资产 (aum) 以及我以当前价格持有的所有头寸的清单。我需要做的是计算投资组合的每日净敞口和总敞口占 aum 的百分比。净曝光率很简单:
sum(shares*price*fx)/aum
超过所有股票。总曝光量为:
abs(shares*price*fx)/aum
(负头寸指空头头寸)。我需要使用聚合框架将其作为单个查询来执行。我已经尝试了许多查询,但似乎没有一个能如此清楚地工作,我只是在黑暗中四处游荡。任何人都可以提供一些指导吗?
我的查询看起来像这样
查询运行,但计算的值为零。我的投影也没有像我预期的那样工作,因为我希望将所有数据展平为二维表。
mongodb - MongoDB - 在 $lookup 之后使用 $group 倒回 $unwind 嵌套数组
MongoDB 聚合每分钟都变得指数级复杂!
我目前是$unwind
一个嵌套数组,然后对展开的嵌套数组中的每个对象执行$lookup
一个_id
。我最后的尝试是用$group
. 但是,我无法重建原始嵌入数组及其原始属性名称,以及每个文档的其余原始直接属性。
到目前为止,这是我的尝试:
我得到的是这样的:
这个结果有两个问题:
- 结果
universities
是一个数组的数组,每个数组都有一个对象,因为返回的是原始嵌套数组$lookup
的单个元素数组。$profile.universities
它应该只是一个对象数组。 - 结果
universities
应取其原始位置,如嵌套在profiles
. 我知道为什么原来profile.universities
是这样的,因为我正在使用$first
运算符。我的意图是保留 的所有原始属性profile
,同时保留原始嵌套universities
数组。
最终,我需要的是这样的:
我可以使用另一个运算符来代替$group
实现此目的吗?还是我理解$group
错误的目的?
编辑:这是原始帖子,上下文: 如果 Mongo $lookup 是左外连接,那么它怎么会排除不匹配的文档?
mongodb - 子子数组的过滤
我有一个收藏:
我会过滤掉每个人things
的 s 。car
因此,获得相同的集合(具有相同的模式)但没有一些thing
s。
我如何通过 MongoDB 聚合来做到这一点?
UPD:“可能重复”解释了如何过滤子数组而不是其中的子子数组(AFAIK)。
UPD2:我写了一些过滤子子数组的代码,但我应该指出我想要保存的所有字段......
person
问题:我可以自动为s 和他们的 s保留其他字段car
(因为现实世界中有很多字段)?
mongodb - 带有额外信息的 mongodb 聚合
我有一个包含以下文档的 mongo 集合:
我想要做的是运行一个查询,该查询将在签名文件上分组,返回最小和最大价格以及相应的 url:
运行一个$group
on$signature
字段来获取$min
并且$max
是直截了当的,但是为了获得实际的 url,我将查询分成 2 个,第一个查询返回一个排序的文档列表,使用$signature
从 min 到 max 的价格,然后(在 python 代码中)取第一个和最后一个元素。这工作正常,但有一个查询会很好。
想法?
ps
还“玩弄”了一个查询最小值和一个最大值并“压缩”结果。