一、简介
通过这篇你可以了解:标量过滤支持的字段以及对应操作符的支持情况。
二、逻辑运算表达式
支持的逻辑运算符包括 and、or、not,如下表所示。
| 运算符 | 描述 | 示例 |
| $and | 与 | {"$and":[{"field1":{"$in":["value1","value2"]}},{"field2":{"$gt":123}}]} |
| $or | 或 | {"$or":[{"field1":{"$in":["value1","value2"]}},{"field2":{"$gt":123}}]} |
| $not | 非 | {"$not":{"field1":{"$eq":"value1"}}} |
三、字符串类型表达式
字符串类型的值必须要用英文双引号括起来。字符串类型可以用单值或多值匹配。当前所支持的字符串类型的运算符,如下表所示。
| 运算符 | 描述 | 示例 |
| $in | 匹配任意一个字符串值 | {"field1":{"$in":["value1","value2"]}} |
| $nin | 排除所有字符串值 | {"field1":{"$nin":["value1","value2"]}} |
| $eq | 匹配单个字符串值 | {"field1":{"$eq":"value1"}} |
| $ne | 排除单个字符串值 | {"field1":{"$ne":"value1"}} |
四、数值类型表达式
标量索引字段的数值类型支持 uint64、int64、double 类型。Filter 表达式所支持数值类型的运算符,如下表所示。
| 运算符 | 描述 | 示例 |
| $gt | 大于 | {"field1":{"$gt":123}} |
| $gte | 大于等于 | {"field1":{"$gte":123}} |
| $eq | 等于 | {"field1":{"$eq":123}} |
| $lt | 小于 | {"field1":{"$lt":123}} |
| $lte | 小于等于 | {"field1":{"$lte":123}} |
| $ne | 不等于 | {"field1":{"$ne":123}} |
| $in | 匹配任意一个数值 | {"field1":{"$in":[123,456]}} |
| $nin | 排除所有数值 | {"field1":{"$nin":[123,456]}} |
五、filter 中支持的标量字段
任何数据对象都一定有的标量数据,即上文 field1、field2支持的字段
| 字段名 | 类型 | 描述 |
| ContentType | String | 对象的 Meta 类型,例如为 JPEG,由客户在上传的时候指定 |
| MediaType | String | 文件媒体类型。枚举值:image:图片other:其他document:文档archive:压缩包audio:音频video:视频 |
| CustomId | String | 客户主动传入的一个随机 Id,用于标识对象 |
| Size | Int | 对象的大小 |
| FileModifiedTime | Int | 对象的最后更新时间戳 |
| COSUserMeta | Json | COS 自定义头部。储存你业务在 cos object 上的键名、键值对信息,用于在查询时可以据此为筛选项进行检索。如:COSUserMeta.xxx |
| COSTagging | Json | COS 自定义标签。储存你业务在 cos object 上的自定义标签的键名、键值对信息,用于在查询时可以据此为筛选项进行检索。如:COSTagging.xxx |
| CustomLabels | Json | 文件自定义标签列表。储存你业务自定义的键名、键值对信息,用于在查询时可以据此为筛选项进行检索。如:CustomLabels.xxx |