查询数量组件
查询数量组件(DbQueryCount)用于统计满足条件的实体记录数量。
概述
查询数量组件按筛选条件统计目标实体的记录条数并返回计数结果,常用于分页总数计算、条件校验、看板指标等场景。
查询条件使用统一的「基础 / 高级」编辑模式(详见 全局属性),默认条件过滤掉已删除数据。
配置项
| 配置项 | 说明 |
|---|---|
| 操作对象 | 要统计的实体对象,必填 |
| 默认条件 | 统计的筛选条件,支持基础模式与高级模式 |
| 输出到最 终结果 | 开启后该组件结果作为接口返回值 |
默认条件
默认条件通过分栏切换「基础 / 高级」两种模式:
| 模式 | 值(ConditionMode) | 说明 |
|---|---|---|
| 基础 | basic | 界面逐项配置,单层「并且 / 或者」 |
| 高级 | advanced | 直接编辑条件 JSON,支持嵌套 |
默认条件模板为过滤未删除数据:
{
"Field": "isdeleted",
"Operator": "eq",
"Value": false
}
使用场景
- 分页总数计算
- 存在性校验(数量是否为 0)
- 看板指标统计
下一步
属性明细
以下内容面向技术实现与 AI 检索,说明查询数量组件的节点元数据。
节点元数据
查询数量组件 由 FlowCmpType.DbQueryCount 标识。所有节点 meta 值均以字符串存储(布尔、数字、数组等在元数据中同样以字符串形式保存)。
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
type | string | 组件类型 | 固定为 "DbQueryCount" |
MetaObjectId | string(GUID) | 目标实体对象 | 缺省取当前接口所属对象 |
DefaultFilter | string(JSON) | 高级模式的默认条件 | 条件 JSON,缺省为 isdeleted = false 模板 |
BasicFilter | string(JSON) | 基础模式的默认条件 | 条件 JSON |
ConditionMode | string | 条件编辑模式 | "basic"(缺省)/ "advanced" |
IsFinalResult | string(bool) | 是否输出到最终结果 | "true" / "false" |
IsDisabled | string(bool) | 是否禁用该节点 | "true" / "false" |
order | string | 同级排序 | 例:"9" |
元数据存储示例
{
"ID": "count1",
"type": "DbQueryCount",
"MetaObjectId": "3f9c0b2e-2d3a-4e6f-9c11-0f7a5b8d2e10",
"ConditionMode": "basic",
"BasicFilter": "{\"Logic\":\"And\",\"Filters\":[{\"Field\":\"isdeleted\",\"Operator\":\"eq\",\"Value\":false}]}",
"IsFinalResult": "true",
"order": "9"
}
服务端执行逻辑
本节说明 DbQueryCountComponentManager 在服务端的真实执行过程。组件继承自 TriggerComponentManagerBase,接口链路与实体触发器链路均会执行。
执行时机与场景
- 执行入口为
_ExecuteAsync,只做条件计数,不返回数据行,执行后调用ExecuteNextAsync继续下游。 - 基类执行前读取
IsDisabled,为"true"时跳过本组件。
查询条件组装
条件组装优先级自高到低:
context.FilterOverride(最高优先):一旦赋值,覆盖其他所有条件。- 否则以空条件为基底,依次 AND 拼接:
- 默认条件:由
ConditionFilterResolver.ResolveAsync(ConditionMode, DefaultFilter, BasicFilter, ctx)解析。ConditionMode="basic"时读取BasicFilter并按值类型解析;其他情况按「高级模式」反序列化DefaultFilter。 request.Condition:请求体传入的条件(与查询集合不同,数量组件在默认条件之后拼接请求条件)。context.AndFilter:链路按需插入的额外 AND 条件。
- 默认条件:由
与查询集合不同,数量组件不执行 {Env.*} / {Model.*} 默认值占位符替换。