问题标签 [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 投票
3 回答
38260 浏览

mongodb - 在 mongo 中分组,不包括空值

我有 mongo 查询,它对文档进行组操作。

除了我想在没有空值或空值的情况下优化结果之外,我几乎得到了预期的结果。

目前我的查询如下所示:

结果看起来像这样:

如果 DB 的实际数据中的任何 group by 字段值为空或 null,我想删除这些行。

异常结果应如下所示:

0 投票
1 回答
388 浏览

php - $redact 中的 MongoDB $subtract 抛出“对象已经是运算符表达式”错误

当我尝试使用减法运行聚合查询时,我遇到了一个奇怪的错误。

使用以下查询:

从逻辑上讲,这应该减去 20 - 10,然后比较结果是否大于或等于 10。问题是它会引发此错误:

MongoResultException: localhost:27017: 此对象已经是运算符表达式,不能用作文档表达式(在 '0' 处)

现在,当我删除 $subtract 并运行它时:

如果 10 大于 10,则进行比较,这样不会出错。那么为什么 $subtract 会导致上述错误消息?

0 投票
1 回答
1132 浏览

mongodb - Mongodb WeekofMonth?

我坚持实现weekofMonth而不是WeekofYear. 有人可以指导我如何做到这一点吗?

输出

在上面显示的数据中,它实际上没有显示weekofMonth。鉴于第 18 周是本月的第一周,我怎样才能得到这个?

0 投票
1 回答
793 浏览

mongodb - MongoDB - 根据另一个数组过滤一个数组

我正在使用 MongoDB,这就是我的文档的样子

arr1键中的数组arr2总是具有相同的长度。我想汇总数据,以便我可以过滤掉arr2基于arr1.

例如,如果我根据arr1查找过滤我的收藏a,我想得到类似的东西:

有什么方法可以使用 MongoDB 来实现吗?

谢谢,

乌拉

0 投票
1 回答
100 浏览

python - 在 MongoDB 中不同,键名中有空格

我有一个具有以下结构的集合:

如何获得“Tipo de Ativo:”的“不同”值?

不起作用。

有什么想法吗?

0 投票
1 回答
125 浏览

mongodb - 如何使用聚合'$out'在集合之间迁移数据,但不同的数据库?

我正在使用聚合框架将数据从一个集合迁移到另一个集合。以下是代码示例:

oldCollection不会复制的索引newCollection是已知的。

但是有什么最简单的方法可以让我将它直接移动到同一 MongoDB 主机上的不同数据库中,并且有没有任何选项可以停止覆盖/替换集合中的整个数据。我的意思是保留对newColleciton?

根据 MongoDB 文档:

$out 阶段用新的结果集合自动替换现有集合。$out 操作不会更改先前集合中存在的任何索引。

0 投票
1 回答
1051 浏览

mongodb - 具有许多嵌入式文档的 MongoDB 聚合

我有我的 mongoDB 集合的下一个结构:

我需要在一个按_id字段分组的查询中获取会话、pageViews 和事件的计数。

我愿意:

但我不明白如何计算会话数。

如何获取此查询中的会话数?

谢谢 !

0 投票
1 回答
177 浏览

mongodb - mongodb中两个字段的出现次数总和

我有一个名为游戏的文档集合,它们看起来像这样

现在我希望 MongoDB 输出这个:

我一直在研究聚合、mapReduce 和 distinct 都没有成功。我希望你能帮助我!

编辑:

我有一个名为“tied”的字段,它也是一个布尔值。我怎样才能在结果中实现平局?(游戏中每个玩家还有一个字段,player1 & player2)结果应该是: { _id: 'name', wins: 3, losses: 1, tied: 1 }

编辑2:

就这样解决了!

0 投票
1 回答
1331 浏览

mongodb - 没有 $match 的聚合查询

我有一个集合,其中来自不同集合的唯一文档可以一遍又一遍地出现(在下面的示例中item),具体取决于用户共享它们的程度。我想创建一个聚合查询来查找最共享的文档。没有必要 $match 因为我不匹配某个条件,我只是查询最共享的。现在我有:

但是,这只返回 1 个结果。我突然想到我可能只需要做一个简单的find查询,但我希望汇总结果,以便每个结果都有项目,并且总计是它在集合中出现的次数。

故事集合中的文档示例:

users每个人items都有自己的收藏品。

0 投票
2 回答
3108 浏览

mongodb - 在 MongoDB 聚合中忽略 $last 的空值

“帐户”集合中有文档。某些字段可能未声明。看这个。

使用聚合框架,我想获得产品的最后价格、最后销售和计数。目前我使用这个查询

但是saleprice领域变成了null。我想,我应该使用$projectbefore $group,如果当前字段为空,我如何保留最后一个文档的值?