问题标签 [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 回答
477 浏览

django - 如何将 mongodb 2.2 的聚合功能与预聚合报告/集合一起使用

我有如下方式的预聚合集合:

我想对 call_hourly 数据进行分组,为此我尝试了以下方式,但没有尝试

知道如何获得类似的结果

或者

0 投票
2 回答
4793 浏览

mongodb - MongoDB 聚合 $project

我将我们的 Web 服务器日志存储在MongoDB中,架构如下所示:

在我开始通过聚合管道传递我的集合之前,我正在尝试使用$project运算符来稍微重塑这个模式。基本上,我需要添加一个名为“type”的新字段,稍后将用于执行分组。新领域的逻辑非常简单。

我想它必须是这样的:

我知道如何使用 map-reduce 来做到这一点(通过将“keyf”属性设置为实现上述逻辑的自定义 JS 函数),但现在我正在尝试使用新的聚合框架来做到这一点。我尝试使用表达式运算符来实现逻辑,但到目前为止还不能让它工作。任何帮助/建议将不胜感激!

0 投票
2 回答
54952 浏览

mongodb - 使用聚合框架使用 MongoDB 进行组计数

假设我的 MongoDB 架构如下所示:

这是一个多对多的关系。例如,数据可能如下所示:

我想得到每个车主拥有的汽车数量。在 SQL 中,这可能看起来像:

在这种情况下,结果将如下所示:

如何使用聚合框架使用 MongoDB 完成同样的事情?

0 投票
2 回答
28197 浏览

mongodb - 使用 where 条件聚合查询

如何为 Mongo 转换以下 SQL 查询:

0 投票
2 回答
9771 浏览

mongodb - 仅获取 mongodb 中数组属性的第一项

鉴于集合中的以下布局...

我将如何返回仅包含上述字段的结果,并且仅返回图像下的第一个结果?我不介意结果是否在一个扁平对象中,只有图像是嵌套对象。

我查看了聚合框架,它似乎与我正在寻找的不匹配。我知道我可以在结果集上做一个 map/reduce,或者在 listing_id 上做一个组,我只是希望有一个更简单的查询结构,而不需要求助于组或 reduce。

如果目前通过聚合框架无法做到这一点,那么工作组或 map-reduce 将是一个可以接受的答案。


编辑:在最终结果中我不想要大约 50 多个属性。使用 $slice 指令,我似乎不能只指定我想要的字段。

0 投票
2 回答
3295 浏览

mongodb - 在 MongoDB Aggregate Framework 中将列合并为一个

是否可以跨多列按值分组?

假设我每天存储人们之间的互动,并通过如下计数来跟踪 from's 和 to's。

这使我可以'bob'通过分组from:和求和来获得与任何人的所有交互count:

现在我想获得用户的所有交互,所以基本上按from:和的值分组to:。本质上,总结count:每个名字,不管它是在from:还是to:

[更新]

所需的输出将是:

最简单的方法是创建一个新列并在里面names:存储,然后,但这似乎很浪费。from:to:$unwind

有什么提示吗?

谢谢

0 投票
1 回答
1254 浏览

mongodb - mongoDB聚合:在多维数组上查找值

几天前我正在使用 MongoDB 和聚合函数,但我无法得到我正在寻找的结果。

假设一个集合具有这样的文档:

最初,对于搜索,我有:要搜索的集合、_id 值和 url 值。

目的是针对特定的 url,例如:url: '786527618a424234be70dfb61366',以获取与该 url 关联的“数据”的值,而不加载所有文档内容。仅获取:

我一直在使用一些表格,但没有成功的结果。例如:

0 投票
2 回答
21408 浏览

mongodb - 使用组数获取 $group 结果

假设我有一个名为“posts”的集合(实际上它是一个更复杂的集合,posts 太简单了),其结构如下:

我希望这个集合跨越数十万甚至数百万,我需要按标签查询帖子并按标签对结果进行分组并显示分页的结果。这就是聚合框架的用武之地。我打算使用 aggregate() 方法来查询集合:

关键是要创建分页器,我需要知道输出数组的长度。我知道要做到这一点,你可以这样做:

但这会丢弃前一个管道(第一组)的输出。有没有办法在保留每个管道的输出的同时组合这两个操作?我知道整个聚合操作的输出可以转换为某种语言的数组并计算内容,但管道输出可能超过 16Mb 限制。此外,执行相同的查询只是为了获得计数似乎是一种浪费。

那么是否可以同时获取文档结果和计数呢?任何帮助表示赞赏。

0 投票
1 回答
29438 浏览

mongodb - MongoDB Aggregate $unwind $match using date - 我错过了什么?

我是 MongoDB 的新手,我正在尝试使用聚合。我部分地做了我正在寻找的东西,但我对日期有一种奇怪的行为。

MongoDB信息

版本:2.2.0

操作系统:Windows 7

客观的

获取在“2012-11-22”之后创建的所有评论

让我们举个例子:

数据


示例 1:字符串匹配成功

从用户“sam”返回所有“评论”:

这仅返回属性 'author' 为 'sam' 的注释。


示例 2:日期问题?

这个聚合(对我来说)与前一个聚合相同,但不是匹配“作者”,而是匹配日期属性“创建”:

但是,如果您测试此聚合,您会看到一些评论包含的“创建”日期低于“2012-11-22”。例如,返回 ID 为“50ac9fdb53a900bcb4be46d9”的评论。


我希望只有日期大于“2012-11-22”的评论......我想我错过了一些东西......

谢谢

0 投票
3 回答
16865 浏览

mongodb - 将 mongodb 聚合框架结果导出到新集合

我想将聚合框架结果保存到新集合中。我知道目前使用命令本身的框架是不可能的。

shell中有解决方法吗?