SequoiaDB 简介						 
					
						快速入门						 
					
						安装部署						 
					
						数据库实例						 
					
						分布式引擎						 
					
						SAC 管控中心						 
					
						SequoiaPerf 性能分析工具						 
					
						参考手册						 
					
						常见问题及解答(FAQ)						 
					
						版本信息						 
					
配合匹配符一起使用,可以对字段进行各种函数运算之后,再执行匹配操作。
以下示例,匹配字段 a 长度为 3 的记录:
> db.sample.employee.find({a:{$strlen:1, $et:3}})
Note:
先获取字段 a 的长度,再用该长度与 3 比较,返回长度为 3 的记录。
作为选择符使用,可以对选取的字段进行函数运算,返回运算后的结果。
以下示例,返回将字段 a 转大写的结果:
> db.sample.employee.find({}, {a:{$upper:1}})所有支持的函数操作如下:
| 函数 | 描述 | 示例 | 
|---|---|---|
| $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]}}) | 
函数操作可以支持流水线式处理,多个函数流水线执行:
> db.sample.employee.find({a:{$trim:1, $upper:1, $et:"ABC"}})
Note:
先对字段 a 去除左右两侧空格,然后再转换成大写,最后匹配与"ABC"相等的记录
当字段类型为数组类型时,函数会对该字段做一次展开,并对每个数组元素执行函数操作。
以取绝对函值函数为例:
> db.sample.employee.find()
{
  "a": [
    1,
    -3,
    -9
  ]
}
> db.sample.employee.find({}, {a:{$abs:1}})
{
  "a": [
    1,
    3,
    9
  ]
}
       展开
            展开
          
   
   
   
   
   
   
   
