微信小程序开发文档 SDK数据库 Aggregate·计算记录数

2024-02-25 开发教程 微信小程序开发文档 匿名 0

Aggregate.count(fieldName: string): Aggregate

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

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

参数

fieldName: string

返回值

Aggregate

API 说明

count 的形式如下:

count(<string>)

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

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

const $ = db.command.aggregate
db.collection('items').aggregate()
.group({
_id: null,
count: $.sum(1),
})
.project({
_id: 0,
})
.end()

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

示例

假设集合 items 有如下记录:

{
_id: "1",
price: 10.5
}
{
_id: "2",
price: 50.3
}
{
_id: "3",
price: 20.8
}
{
_id: "4",
price: 80.2
}
{
_id: "5",
price: 200.3
}

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

const $ = db.command.aggregate
db.collection('items').aggregate()
.match({
price: $.gt(50)
})
.count('expensiveCount')
.end()

返回结果如下:

{
"expensiveCount": 3
}