MongoDB聚合运算符:$locf

MongoDB聚合运算符:$locf

$locf聚合运算符是(Last observation carried forward)的缩写,即末次观测值转结法的缩写,是统计学上常用的一种填充缺失值的方法。具体是将窗口中空字段和缺失字段的值设置为该字段的最后一个非空值。$locf只能用于$setWindowFields阶段。

语法

{
   
    $locf: <expression> }

使用

如果正在填充的字段同时包含空值和非空值,$locf根据$setWindowFields中指定的排序顺序将null值和缺失值设置为字段的最后一个非null值。

对于排序后在非空值之前的null和缺失字段值仍为null

如果要填充的字段在分区中只有空值或缺失值,$locf将分区内该字段值都设置为null

对比$fill$locf

使用末次观测值转结法填充缺失的字段值,可以:

  • $fill阶段用{ method: "locf" }。在使用$fill阶段时,在输出中指定的字段与用作源数据的字段相同。
  • $setWindowFields阶段使用$locf操作符。在使用$locf时,可以为与用作源数据的不同字段设置值。

举例

使用下面的脚本创建stock集合,包含每小时跟踪单个公司的股票价格:

db.stock.insertMany( [
   {
   
   
      time: ISODate("2021-03-08T09:00:00.000Z"),
      price: 500
   },
   {
   
   
      time: ISODate("2021-03-08T10:00:00.000Z"),
   },
   {
   
   
      time: ISODate("2021-03-08T11:00:00.000Z"),
      price: 515
   },
   {
   
   
      time: ISODate("2021-03-08T12:00:00.000Z")
   },
   {
   
   
      time: ISODate("2021-03-08T13:00:00.000Z")
   },
   {
   
   
      time: ISODate("2021-03-08T14:00:00.000Z"),
      price:</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

原子星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值