.sum()
获取所有匹配记录中指定属性的聚合总和。
var total = await Something.sum(numericAttrName, criteria);
参数 | 类型 | 详情 | |
---|---|---|---|
1 | numericAttrName | 要进行求和的数值属性的名称。 | |
2 | criteria | 用于匹配数据库中记录的Waterline 查询条件。如果未指定条件,则将在该模型的所有记录中计算总和。sum 查询不支持使用 skip 和 limit 进行分页,也不支持使用 select 进行投影。 |
类型 | 描述 |
---|---|
所有匹配记录中指定属性的聚合总和。 |
名称 | 类型 | 何时发生 |
---|---|---|
UsageError | 如果传入无效内容,则抛出此错误。 | |
AdapterError | 如果数据库适配器中出现错误,则抛出此错误。 | |
Error | 如果发生任何其他意外情况,则抛出此错误。 |
有关在 Sails 和 Waterline 中处理错误的示例,请参阅概念 > 模型和 ORM > 错误。
获取所有余额少于 32,000 美元或标记为“已暂停”的银行账户的累积账户余额。
var total = await BankAccount.sum('balance')
.where({
or: [
{ balance: { '<': 32000 } },
{ suspended: true }
]
});
- 此方法可与
await
、Promise 链或传统的 Node 回调一起使用。- 某些数据库(如 MySQL)可能会为此类查询返回
null
;但是,最佳实践是让 Sails/Waterline 适配器作者返回0
,以确保应用程序级代码的一致性和类型安全。