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:

最低0.47元/天 解锁文章
2408

被折叠的 条评论
为什么被折叠?



