繁体   English   中英

Mongo 聚合 - 返回零计数

[英]Mongo aggregate – return zero count

我需要你在 Mongo 的聚合函数方面的帮助。

我有这样的聚合:

const likes = await this.aggregate([
  {
    $match: { post: postId },
  },
  {
    $group: {
      _id: '$likeType',
      count: { $sum: 1 },
    },
  },
]);

它收集所有喜欢/不喜欢的帖子并返回:

[ { _id: 'pos', count: 40 }, { _id: 'neg', count: 3 } ]

我遇到了一个问题:如果只有一种喜欢(例如只有“pos”),它会返回:

[ { _id: 'pos', count: 40 } ]

但我也需要这个数组来显示零值:

[ { _id: 'pos', count: 40 }, { _id: 'neg', count: 0 } ]

有没有办法为所有类型的_ids 设置默认值?

我知道它找不到任何“否定”并且无法返回它们。 所以我想设置默认值让系统知道,只有两种类型:'pos'和'neg'。

这种情况有什么解决办法吗?

谢谢!

我的建议是:

  1. 获取不同的 ID: https://docs.mongodb.com/manual/reference/method/db.collection.distinct/
  2. 使用您的查询参数进行搜索。
  3. 过滤不是您的查询参数的不同 ID。 Append 默认值为结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM