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

mongodb - 如何在 MongoDB $group 运算符中有效地计算过滤后的文档

我有一个相当小的 63k 文档数据集(总共 2.5GB)。文件示例:

我想通过 FormId 获取文档的总数。我在这个查询上得到了快速的结果(0.15 秒):

我的问题是我需要计算 {“IsComplete”:true } 所在的文档。我在两个属性上都建立了 2 个索引,但我意识到使用 $match 运算符会扫描所有文档。那么如何有效地过滤 $group 计数呢?

0 投票
1 回答
104 浏览

node.js - 在 $project 阶段重塑文档

对于我们的集合,如下所示:

对于我们的node.js应用程序的以下查询。

给出以下错误:

断言:命令失败:{“ok”:0,“errmsg”:“管道阶段规范对象必须完全包含一个字段。”,“代码”:16435 }:聚合失败_getErrorWithCode@src/mongo/shell/utils。 js:25:13 doassert@src/mongo/shell/assert.js:13:14 assert.commandWorked@src/mongo/shell/assert.js:267:5 DBCollection.prototype.aggregate@src/mongo/shell/collection .js:1312:5 @(shell):1:1

2016-09-17T19:20:26.303+0530 E QUERY [thread1] 错误:命令失败:{“ok”:0,“errmsg”:“管道阶段规范对象必须包含完全一个字段。”,“代码” :16435 }:聚合失败:_getErrorWithCode@src/mongo/shell/utils.js:25:13 doassert@src/mongo/shell/assert.js:13:14 assert.commandWorked@src/mongo/shell/assert.js :267:5 DBCollection.prototype.aggregate@src/mongo/shell/collection.js:1312:5 @(shell):1:1

我无法弄清楚为什么?

0 投票
2 回答
823 浏览

mongodb - 如何在 MongoDB 中使用嵌套分组

我需要找到每个组织级别的重复配置文件总数。我有如下文件:

我已经编写了一个由 ProfileId 和 OrganizationId 组成的组的查询。我得到的结果如下所示:

但我想获得每个组织级别的总数,这意味着 Org 10 应该有一行,总和为 4。

我正在使用的查询如下所示:

有任何想法吗 ?请帮忙

0 投票
1 回答
1460 浏览

mongodb - mongodb按类别聚合组

我是使用 MongoDB 聚合框架的新手,这里有一个模式:

每本书都有多个类别,我想显示前 5 个最畅销的类别,我需要的每个类别显示最畅销的前 3 本书,我还需要显示类别名称,我需要的结果是:

我该如何在 MongoDB 中解决这个问题?

0 投票
0 回答
137 浏览

mongodb - mongodb - 按属性值对子文档对象进行排序

我在 mongodb 中有一个文档,如下所示。

所以我想以这样的方式编写一个查询,使values对象按其值排序。如下:

所以我基本上希望该字段的内容按降序排列。

0 投票
1 回答
446 浏览

node.js - Mongoose 过滤后提取第一个子数组元素

我在子文档中有这样的数组

我想按语言过滤子文档。我可以这样做

这会给我类似的东西

但我需要 descDay 成为文档而不是数组,如下所示:

我怎么能得到那个?

0 投票
0 回答
72 浏览

mongodb - 如何从 Mongodb 3.0 中检索聚合值的商?

Mongodb 3.2 支持$divide$floor操作符。因此,在 3.2 版中,我只使用该运算符。但是在 3.0 版本中,只$divide提供了操作符。

$divide运算符计算商是十进制而不是整数。

如何获得整数值而不是小数的商?

0 投票
1 回答
14184 浏览

javascript - 猫鼬对所有文档求和

我正在计算与我的查询匹配的文档中名称为数量的所有列,

如何获得称为金额的文档列的总结果?

例如,如果我有:

它会返回总金额(60)?

请记住,我确实需要{time: {$gte: a}, time: {$lte: tomorrow}在查询中使用。

我该怎么做?

0 投票
1 回答
1440 浏览

mongodb - MongoDB聚合管道中的多个组

我有一个包含以下数据的集合:

我想分组attribute以获得每个属性的总计数,同时分组attribute$hour获得每个属性和小时的计数。

我知道我可以做类似的事情:

在两个单独的聚合中获得两个结果,但是有没有办法在一个查询中获得我想要的结果?

按要求编辑:

也许这是完全错误的,但理想情况下,我希望得到如下回复:

然而,问题的重点是这是否可以(以及如何)在 mongodb 中的一个查询上完成。不在将在应用层合并的两个查询中

0 投票
1 回答
244 浏览

mongodb - 如何使用 Mongo 聚合功能计算嵌套组的总计和小计百分比?

我在 mongo 集合中有一些像这样的文件。

如何使用 Mongo 的聚合功能计算嵌套组的总计和小计百分比?

我期待输出结果为

示例预期输出