SDK数据库 Command聚合操作符算数操作符


本文整理自网络,侵删。

AggregateCommand.abs(value: Expression<number>): Object

支持端:小程序 2.7.4, 云函数 0.8.1, Web

聚合操作符。返回一个数字的绝对值。

参数

value: Expression<number>

number

返回值

Object

API 说明

语法如下:

db.command.aggregate.abs(<number>)

abs 传入的值除了数字常量外,也可以是任何最终解析成一个数字的表达式。

如果表达式解析为 null 或者指向一个不存在的字段,则 abs 的结果是 null。如果值解析为 NaN,则结果是 NaN。

示例代码

假设集合 ratings 有如下记录:

{ _id: 1, start: 5, end: 8 }
{ _id: 2, start: 4, end: 4 }
{ _id: 3, start: 9, end: 7 }
{ _id: 4, start: 6, end: 7 }

··· 可以用如下方式求得各个记录的 start 和 end 之间的绝对差异大小:

const $ = db.command.aggregate
db.collection('ratings').aggregate()
  .project({
    delta: $.abs($.subtract(['$start', '$end']))
  })
  .end()

返回结果如下:

{ "_id" : 1, "delta" : 3 }
{ "_id" : 2, "delta" : 0 }
{ "_id" : 3, "delta" : 2 }
{ "_id" : 4, "delta" : 1 }

AggregateCommand.add(value: Expression[]): Object

支持端:小程序 2.7.4, 云函数 0.8.1, Web

聚合操作符。将数字相加或将数字加在日期上。如果数组中的其中一个值是日期,那么其他值将被视为毫秒数加在该日期上。

参数

value: Expression[]

[<表达式1>, <表达式2>, ...]

返回值

Object

API 说明

语法如下:

db.command.aggregate.add([<表达式1>, <表达式2>, ...])

表达式可以是形如 $ + 指定字段,也可以是普通字符串。只要能够被解析成字符串即可。

示例代码

假设集合 staff 有如下记录:

{ _id: 1, department: "x", sales: 5, engineer: 10, lastUpdate: ISODate("2019-05-01T00:00:00Z") }
{ _id: 2, department: "y", sales: 10, engineer: 20, lastUpdate: ISODate("2019-05-01T02:00:00Z") }
{ _id: 3, department: "z", sales: 20, engineer: 5, lastUpdate: ISODate("2019-05-02T03:00:00Z") }

数字求和

可以用如下方式求得各个记录人数总数:

const $ = db.command.aggregate
db.collection('staff').aggregate()
  .project({
    department: 1,
    total: $.add(['$sales', '$engineer'])
  })
  .end()

返回结果如下:

{ _id: 1, department: "x", total: 15 }
{ _id: 2, department: "y", total: 30 }
{ _id: 3, department: "z", total: 25 }

增加日期值

如下操作可以获取各个记录的 lastUpdate 加一个小时之后的值:

const $ = db.command.aggregate
db.collection('staff').aggregate()
  .project({
    department: 1,
    lastUpdate: $.add(['$lastUpdate', 60*60*1000])
  })
  .end()

返回结果如下:

{ _id: 1, department: "x", lastUpdate: ISODate("2019-05-01T01:00:00Z") }
{ _id: 2, department: "y", lastUpdate: ISODate("2019-05-01T03:00:00Z") }
{ _id: 3, department: "z", lastUpdate: ISODate("2019-05-02T04:00:00Z") }

AggregateCommand.ceil(value: Expression<number>): Object

支持端:小程序 2.7.4, 云函数 0.8.1, Web

聚合操作符。向上取整,返回大于或等于给定数字的最小整数。

参数

value: Expression<number>

number

返回值

Object

API 说明

语法如下:

db.command.aggregate.ceil(<number>)

<number> 可以是任意解析为数字的表达式。如果表达式解析为 null 或指向一个不存在的字段,则返回 null,如果解析为 NaN,则返回 NaN。

示例代码

假设集合 sales 有如下记录:

{ _id: 1, sales: 5.2 }
{ _id: 2, sales: 1.32 }
{ _id: 3, sales: -3.2 }

可以用如下方式取各个数字的向上取整值:

const $ = db.command.aggregate
db.collection('sales').aggregate()
  .project({
    sales: $.ceil('$sales')
  })
  .end()

返回结果如下:

{ _id: 1, sales: 6 }
{ _id: 2, sales: 2 }
{ _id: 3, sales: -3 }

AggregateCommand.divide(value: Expression[]): Object

支持端:小程序 2.7.4, 云函数 0.8.1, Web

聚合操作符。传入被除数和除数,求商。

参数

value: Expression[]

[<被除数表达式>, <除数表达式>]

返回值

Object

API 说明

语法如下:

db.command.aggregate.divide([<被除数表达式>, <除数表达式>])

表达式可以是任意解析为数字的表达式。

示例代码

假设集合 railroads 有如下记录:

{ _id: 1, meters: 5300 }
{ _id: 2, meters: 64000 }
{ _id: 3, meters: 130 }

可以用如下方式取各个数字转换为千米之后的值:

const $ = db.command.aggregate
db.collection('railroads').aggregate()
  .project({
    km: $.divide(['$meters', 1000])
  })
  .end()

返回结果如下:

{ _id: 1, km: 5.3 }
{ _id: 2, km: 64 }
{ _id: 3, km: 0.13 }

AggregateCommand.exp(value: Expression<number>): Object

支持端:小程序 2.7.4, 云函数 0.8.1, Web

聚合操作符。取 e(自然对数的底数,欧拉数) 的 n 次方。

参数

value: Expression<number>

exponent

返回值

Object

API 说明

语法如下:

db.command.aggregate.exp(<exponent>)

<exponent> 可以是任意解析为数字的表达式。如果表达式解析为 null 或指向一个不存在的字段,则返回 null,如果解析为 NaN,则返回 NaN。

示例代码

假设集合 math 有如下记录:

{ _id: 1, exp: 0 }
{ _id: 2, exp: 1 }
{ _id: 3, exp: 2 }
const $ = db.command.aggregate
db.collection('math').aggregate()
  .project({
    result: $.exp('$exp')
  })
  .end()

返回结果如下:

{ _id: 1, result: 1 }
{ _id: 2, result: 2.71828182845905 }
{ _id: 3, result: 7.38905609893065 }

AggregateCommand.floor(value: Expression<number>): Object

支持端:小程序 2.7.4, 云函数 0.8.1, Web

聚合操作符。向下取整,返回大于或等于给定数字的最小整数。

参数

value: Expression<number>

number

返回值

Object

API 说明

语法如下:

db.command.aggregate.floor(<number>)

<number> 可以是任意解析为数字的表达式。如果表达式解析为 null 或指向一个不存在的字段,则返回 null,如果解析为 NaN,则返回 NaN。

示例代码

假设集合 sales 有如下记录:

{ _id: 1, sales: 5.2 }
{ _id: 2, sales: 1.32 }
{ _id: 3, sales: -3.2 }

可以用如下方式取各个数字的向下取整值:

const $ = db.command.aggregate
db.collection('sales').aggregate()
  .project({
    sales: $.floor('$sales')
  })
  .end()

返回结果如下:

{ _id: 1, sales: 5 }
{ _id: 2, sales: 1 }
{ _id: 3, sales: -6 }

AggregateCommand.ln(value: Expression<number>): Object

支持端:小程序 2.7.4, 云函数 0.8.1, Web

聚合操作符。计算给定数字在自然对数值。

参数

value: Expression<number>

number

返回值

Object

API 说明

语法如下:

db.command.aggregate.ln(<number>)

<number> 可以是任意解析为非负数字的表达式。

ln 等价于 log([<number>, Math.E]),其中 Math.E 是 JavaScript 获取 e 的值的方法。

示例代码

db.command.aggregate.ln

聚合操作符。计算给定数字在自然对数值。

语法如下:

db.command.aggregate.ln(<number>)

<number> 可以是任意解析为非负数字的表达式。

阅读剩余部分

相关阅读 >>

微信小程序 wxs

微信小程序 运维中心getjserrsearch

微信小程序api 实时语音-取消监听视频状态变化事件

微信小程序云开发服务端存储api 用云文件 id 换取真实链接

微信小程序表单组件 form

微信小程序api 录音-获取录音管理器

微信小程序表单组件 checkbox

微信小程序 扩展组件仿微信表情组件

微信小程序 城市服务实名信息校验

微信小程序 拓展接口

更多相关阅读请进入《微信小程序》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...