【SequoiaDB巨杉数据库】操作符之函数操作概述

函数操作

函数操作可以配合匹配符选择符使用,以实现更复杂的功能。

  1. 配合匹配符一起使用,可以对字段进行各种函数运算之后,再执行匹配操作。

    以下示例,匹配字段a长度为3的记录:

    > db.sample.employee.find({a:{$strlen:1, $et:3}})

     

    Note: 先获取字段a的长度,再用该长度与3比较,返回长度为3的记录。

  2. 作为选择符使用,可以对选取的字段进行函数运算,返回运算后的结果。

    以下示例,返回将字段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}})
$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
  ]
}

更多内容查看请点击 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值