SequoiaDB 简介
安装部署
数据库实例
分布式引擎
SAC 管控中心
参考手册
常见问题及解答(FAQ)
版本信息
函数操作可以对字段进行函数运算。当指定多个函数操作时,支持流水线式处理,多个函数流水线执行。该操作符可以作为选择符使用,也可以搭配匹配符使用,以实现更复杂的查询操作。
作为选择符使用,对查询结果进行函数运算
查询集合 sample.employee 中的记录,并删除字段 a 取值两侧的空格,再将其转换为大写
> db.sample.employee.find({},{a:{$trim:1, $upper:1}})
搭配匹配符使用,先对字段值进行函数运算,再将运算结果作为匹配条件进行查询
查询集合 sample.employee 中字段 a 字节数为 3 的记录
> db.sample.employee.find({a:{$strlen:1, $et:3}})
Note
当字段类型为数组时,函数将对数组中的每个元素进行函数运算。
所支持的函数操作如下:
函数 | 描述 | 示例 |
---|---|---|
$abs | 取绝对值 | db.sample.employee.find({}, {a:{$abs:1}}) |
$ceiling | 向上取整 | db.sample.employee.find({}, {a:{$ceiling:1}}) |
$floor | 向下取整 | db.sample.employee.find({}, {a:{$floor:1}}) |
$mod | 取模运算 | db.sample.employee.find({}, {a:{$mod:1}}) |
$add | 加法运算 | db.sample.employee.find({}, {a:{$add:10}}) |
$subtract | 减法运算 | db.sample.employee.find({}, {a:{$subtract:10}}) |
$multiply | 乘法运算 | db.sample.employee.find({}, {a:{$multiply:10}}) |
$divide | 除法运算 | db.sample.employee.find({}, {a:{$divide:10}}) |
$substr | 截取子串 | db.sample.employee.find({}, {a:{$substr:[0,4]}}) |
$strlen | 获取指定字段的字节数 | db.sample.employee.find({}, {a:{$strlen:10}}) |
$strlenBytes | 获取指定字段的字节数 | db.sample.employee.find({}, {a:{$strlenBytes:10}}) |
$strlenCP | 获取指定字段的字符数 | db.sample.employee.find({}, {a:{$strlenCP:10}}) |
$lower | 字符串转为小写 | db.sample.employee.find({}, {a:{$lower:1}}) |
$upper | 字符串转为大写 | db.sample.employee.find({}, {a:{$upper:1}}) |
$ltrim | 去除左侧空格 | db.sample.employee.find({}, {a:{$ltrim:1}}) |
$rtrim | 去除右侧空格 | db.sample.employee.find({}, {a:{$rtrim:1}}) |
$trim | 去除左右两侧空格 | db.sample.employee.find({}, {a:{$trim:1}}) |
$cast | 转换字段类型 | db.sample.employee.find({}, {a:{$cast:"int32"}}) |
$size | 获取数组元素个数 | db.sample.employee.find({}, {a:{$size:1}}) |
$type | 获取字段类型 | db.sample.employee.find({}, {a:{$type:1}}) |
$slice | 截取数组元素 | db.sample.employee.find({}, {a:{$slice:[0,2]}}) |