Aggregate.count(fieldName: string): Aggregate

支持端:小程序 2.7.4, 云函数 0.8.1, Web

聚合阶段。计算上一聚合阶段输入到本阶段的记录数,输出一个记录,其中指定字段的值为记录数。

参数

fieldName: string

返回值

Aggregate

API 说明

count 的形式如下:

  1. count(<string>)

<string> 是输出记录数的字段的名字,不能是空字符串,不能以 $ 开头,不能包含 . 字符。

count 阶段等同于 group + project 的操作:

  1. const $ = db.command.aggregate
  2. db.collection('items').aggregate()
  3. .group({
  4. _id: null,
  5. count: $.sum(1),
  6. })
  7. .project({
  8. _id: 0,
  9. })
  10. .end()

上述操作会输出一个包含 count 字段的记录。

示例

假设集合 items 有如下记录:

  1. {
  2. _id: "1",
  3. price: 10.5
  4. }
  5. {
  6. _id: "2",
  7. price: 50.3
  8. }
  9. {
  10. _id: "3",
  11. price: 20.8
  12. }
  13. {
  14. _id: "4",
  15. price: 80.2
  16. }
  17. {
  18. _id: "5",
  19. price: 200.3
  20. }

找出价格大于 50 的记录数:

  1. const _ = db.command
  2. db.collection('items').aggregate()
  3. .match({
  4. price: _.gt(50)
  5. })
  6. .count('expensiveCount')
  7. .end()

返回结果如下:

  1. {
  2. "expensiveCount": 3
  3. }