当前位置: 首页 > news >正文

MongoDB聚合运算符:$derivative

$derivative聚合运算符返回返回指定窗口内的平均变化率(即求导),变化率使用以下公式计算:

  • $setWindowFields阶段窗口中的第一个和最后一个文件。
  • 分子,等于最后一个文档的表达式的值减去第一个文档表达式的值。
  • 分母,等于最后一个文档sortBy字段值减去第一个文档sortBy字段值。

语法

{$derivative: {input: <expression>,unit: <time unit>}
}

参数说明:

  • <expression> 指定要指定的表达式,表达式必须要能被解析为数值
  • unit 字符串,用于指定时间单位,可以是:weekdayhourminutesecondmillisecond。如果sortBy字段不是日期类型,就必须忽略unit,换而言之,如果指定了unit,那么sortBy就必须是日期类型字段。

使用

$derivative只能用于$setWindowFields阶段,而且必须指定一个窗口。

举例

使用下面的脚本创建deliveryFleet集合,其内容是以30秒为间隔的送货卡车的里程表读数:

db.deliveryFleet.insertMany( [{ truckID: "1", timeStamp: new Date( "2020-05-18T14:10:30Z" ), miles: 1295.1 },{ truckID: "1", timeStamp: new Date( "2020-05-18T14:11:00Z" ), miles: 1295.63 },{ truckID: "1", timeStamp: new Date( "2020-05-18T14:11:30Z" ), miles: 1296.25 },{ truckID: "1", timeStamp: new Date( "2020-05-18T14:12:00Z" ), miles: 1296.76 },{ truckID: "2", timeStamp: new Date( "2020-05-18T14:10:30Z" ), miles: 10234.1 },{ truckID: "2", timeStamp: new Date( "2020-05-18T14:11:00Z" ), miles: 10234.33 },{ truckID: "2", timeStamp: new Date( "2020-05-18T14:11:30Z" ), miles: 10234.73 },{ truckID: "2", timeStamp: new Date( "2020-05-18T14:12:00Z" ), miles: 10235.13 }
] )

本例在$setWindowFields阶段使用$derivative获得每辆卡车的平均车速,单位是英里/小时,并且使用$match阶段过滤掉车速小于50英里/每小时的卡车。

db.deliveryFleet.aggregate( [{$setWindowFields: {partitionBy: "$truckID",sortBy: { timeStamp: 1 },output: {truckAverageSpeed: {$derivative: {input: "$miles",unit: "hour"},window: {range: [ -30, 0 ],unit: "second"}}}}},{$match: {truckAverageSpeed: {$gt: 50}}}
] )

在本例中:

  • $setWindowFields阶段获取每辆卡车每小时英里数的平均车速:
    • partitionBy: "$truckID"根据truckID对集合文档进行分区
    • sortBy:{timeStamp:1}根据timeStamp字段对文档进行正向排序,最早的里程表读数排在最前面
    • output在窗口范围内使用$derivativemailes的导数值赋予新的字段truckAverageSpeed
      • input表达式为$miles,作为求导计算的分子
      • $derivativetimeStamp字段指定了"hour"为单位,作为求导计算的分母
      • 窗口包含了下限-30秒(前30秒的文档)和0秒(当前文档的时间戳)之间的范围。这意味着$derivative返回卡车在30秒窗口中的速度(英里/小时)。
  • $match阶段使用大于运算符$gt筛选出平均速度大于50英里每小时的卡车。

在下面的输出中可以看出,卡车1的速度显示在truckAverageSpeed字段,卡车2的速度没有显示,因为卡车2的速度未超过50英里每小时

{ "_id" : ObjectId("60cb8a7e833dfeadc8e6285c"), "truckID" : "1","timeStamp" : ISODate("2020-05-18T14:11:00Z"), "miles" : 1295.63,"truckAverageSpeed" : 63.60000000002401 }
{ "_id" : ObjectId("60cb8a7e833dfeadc8e6285d"), "truckID" : "1","timeStamp" : ISODate("2020-05-18T14:11:30Z"), "miles" : 1296.25,"truckAverageSpeed" : 74.3999999999869 }
{ "_id" : ObjectId("60cb8a7e833dfeadc8e6285e"), "truckID" : "1","timeStamp" : ISODate("2020-05-18T14:12:00Z"), "miles" : 1296.76,"truckAverageSpeed" : 61.199999999998916 }

相关文章:

MongoDB聚合运算符:$derivative

$derivative聚合运算符返回返回指定窗口内的平均变化率&#xff08;即求导&#xff09;&#xff0c;变化率使用以下公式计算&#xff1a; $setWindowFields阶段窗口中的第一个和最后一个文件。分子&#xff0c;等于最后一个文档的表达式的值减去第一个文档表达式的值。分母&am…...

面试官:如果你现在有20个Spring Boot微服务,如何监视所有这些Spring Boot微服务?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:如果你现在有20个Spring Boot微服务,如何监视这些微服务? 要监视所有 Spring Boot 微服务,可以使用 Spring Boot Admin 这样的监控工具。Sprin…...

冯诺依曼模型

只要我们学习计算机操作系统&#xff0c;就离不开对冯诺依曼体系结构。因为我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系。 1.什么是冯诺依曼模型呢&#xff1f; 如上图所示&#xff0c;冯诺依曼模型由…...

高低拖延个体的任务决策及执行差异

高低拖延个体的任务决策及执行差异 摘要 拖延行为普遍存在&#xff0c;且影响着许多人的工作.学习和生活。已有的许多研究发现拖延个体明知自己需要尽快完成某项任务,但行动上却迟迟无法付诸实践&#xff0c;表现出一种知行不- -”的倾向.这种倾向是否在高低拖延特质者之间存…...

数据分析Pandas专栏---第十三章<Pandas训练题(初)>

前言: 写这篇是为了弄一个富有挑战性的Pandas练习题库&#xff0c;涵盖了许多常见和实用的数据处理问题。通过解决这些练习&#xff0c;能够深入了解Pandas提供的关键功能&#xff0c;掌握有效处理数据的技巧和方法。 练习题库涵盖了选择特定列并创建新DataFrame、对DataFrame进…...

Delete `␍`eslint(prettier/prettier) 错误的解决方案

最近开始一个新的项目&#xff0c;由他人构建&#xff0c;clone下来后&#xff0c;发现页面每行都有黄色的波浪线的提示&#xff1a;Delete ␍eslint(prettier/prettier) &#xff0c;尝试了很多方法不能解决&#xff0c;最后选择关闭Prettier&#xff1a; 在.eslintrc.js文件…...

第3周 Python字典、集合刷题

第3周 Python字典、集合刷题 单击题目&#xff0c;直接跳转到页面刷题&#xff0c;一周后公布答案。 B2125&#xff1a;最高分数的学生姓名28&#xff1a;返回字典的键值75&#xff1a;字符串转字典77&#xff1a;映射字符串中的字母87&#xff1a;按条件过滤字典B3632&#…...

文字校对的首选——爱校对:用户真实反馈汇编

在今日快节奏、高标准的工作环境下&#xff0c;准确与效率成为了每位专业人士追求的双重目标。不论是在政府机构、学术领域、企业界&#xff0c;还是在自由职业者的行列中&#xff0c;我们都面临着同一个挑战&#xff1a;如何在保持工作速度的同时&#xff0c;确保每一份文档的…...

Llama-3即将发布:Meta公布其庞大的AI算力集群

Meta&#xff0c;这家全球科技巨头&#xff0c;再次以其在人工智能&#xff08;AI&#xff09;领域的雄心壮志震惊了世界。3月13日&#xff0c;公司在其官方网站上宣布了两个全新的24K H100 GPU集群&#xff0c;这些集群专为训练其大型模型Llama-3而设计&#xff0c;总计拥有高…...

【JAVA】Date、LocalDate、LocalDateTime 详解,实践应用

Date、LocalDate、LocalDateTime 详解&#xff0c;实践应用 一、Date、LocalDate 简介1、 java.util.Date&#xff1a;2、 java.time.LocalDateTime&#xff1a;3、 java.time.LocalDate&#xff1a; 二、输出格式1、使用 java.util.Date 的示例代码如下&#xff1a;2、使用 ja…...

分布式链路追踪(一)SkyWalking(1)介绍与安装

一、介绍 1、简介&#xff1a; 2、组成 以6.5.0为例&#xff0c;该版本下Skywalking主要分为oap、webapp和agent三部分&#xff0c;oap和webapp分别用于汇总数据和展示&#xff0c;这两块共同组成了Skywalking的平台&#xff1b;agent是探针&#xff0c;部署在需要收集数据的…...

蓝桥杯历年真题省赛之 2016年 第七届 生日蜡烛

一、题目 生日蜡烛 某君从某年开始每年都举办一次生日party&#xff0c;并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来&#xff0c;他一共吹熄了236根蜡烛。 请问&#xff0c;他从多少岁开始过生日party的&#xff1f; 请填写他开始过生日party的年龄数。 注意&…...

SCAU 8580 合并链表

8580 合并链表 时间限制:1000MS 代码长度限制:10KB 提交次数:3724 通过次数:2077 题型: 编程题 语言: G;GCC Description 线性链表的基本操作如下&#xff1a; #include<stdio.h> #include<malloc.h> #define ERROR 0 #define OK 1 #define ElemType inttyped…...

Docker安装Gitlab

下载镜像 直接下载最新版&#xff0c;比较大有2.36G docker pull gitlab/gitlab-ce创建数据存放的目录位置 按自己习惯位置创建目录 mkdir -p /usr/local/docker/docker_gitlab编写docker-compose.yml 在上面创建的挂载目录里面&#xff08;/usr/local/docker/docker_gitl…...

浅淡 C++ 与 C++ 入门

我们知道&#xff0c;C语言是结构化和模块化的语言&#xff0c;适用于较小规模的程序。而当解决复杂问题&#xff0c;需要高度抽象和建模时&#xff0c;C语言则不合适&#xff0c;而C正是在C的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库…...

学习和认知的四个阶段,以及学习方法分享

本文分享学习的四个不同的阶段&#xff0c;以及分享个人的一些学习方法。 一、学习认知的四个阶段 我们在学习的过程中&#xff0c;总会经历这几个阶段&#xff1a; 第一阶段&#xff1a;不知道自己不知道&#xff1b; 第二阶段&#xff1a;知道自己不知道&#xff1b; 第三…...

Python编程从入门到实践中的一些误区

1.num 使用num时python报错&#xff0c;后来查过后才知道是因为python不支持自增或自减&#xff0c;可以用1。 2.字符串和非字符串连接 要先将非字符串转换为字符串类型之后才能连接 print&#xff08;2int&#xff08;‘2’&#xff09;&#xff09;#4 3.关键字参数必须在未…...

Kanebo HITECLOTH 高科技擦镜布介绍

Kanebo HITECLOTH&#xff0c;这款由日本KBSeiren公司制造的高科技擦镜布&#xff0c;以其卓越的清洁能力和超柔软的布质&#xff0c;成为了市场上备受瞩目的产品。 材质与特性 HITECLOTH采用0.1旦尼尔特级高级微纤维制造&#xff0c;质地细致、坚韧、不起颗粒。这种纤维的特…...

政务云安全风险分析与解决思路探讨

1.1概述 为了掌握某市政务网站的网络安全整体情况&#xff0c;在相关监管机构授权后&#xff0c;我们组织人员抽取了某市78个政务网站进行安全扫描&#xff0c;通过安全扫描&#xff0c;对该市政务网站的整体安全情况进行预估。 1.2工具扫描结果 本次利用漏洞扫描服务VSS共扫…...

Linux tcpdump抓包转Wireshark 分析

简介 tcpdump 是Linux系统下的一个强大的命令&#xff0c;可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤&#xff0c;本文将展示如何使用 tcpdump 抓包&#xff0c;以及如何用 tcpdump 和 wireshark 分析网络流量 tcpdump指…...

亚马逊德国站VAT发票自动筛选:手把手教你用浏览器控制台JS代码搞定(附Edge/Chrome/Firefox全版本)

亚马逊德国站VAT发票智能筛选&#xff1a;浏览器控制台JS代码实战指南 每次月底处理税务发票时&#xff0c;跨境电商卖家们是否总被海量的PDF文件淹没&#xff1f;特别是亚马逊德国站的卖家&#xff0c;面对后台密密麻麻的发票列表&#xff0c;手动筛选符合特定税号条件的文件不…...

ThinkPHP3.x核心特性全解析

好的&#xff0c;我们来梳理一下 ThinkPHP 3.x 版本的主要特性&#xff1a;MVC 架构支持&#xff1a;严格遵循模型(Model)-视图(View)-控制器(Controller)的设计模式。清晰分离业务逻辑、数据操作和页面展示&#xff0c;便于协作开发和维护。路由支持&#xff1a;支持多种 URL …...

快速原型利器:在快马平台一键对比不同AI模型的代码生成效果

最近在开发一个需要快速验证AI模型代码生成能力的项目时&#xff0c;发现手动切换不同模型测试效率太低。于是尝试用InsCode(快马)平台搭建了个模型对比工具&#xff0c;意外地好用&#xff0c;分享下具体实现思路和踩坑经验。 核心需求拆解 这个工具的核心目标是解决三个痛点&…...

Z-Image-Turbo-辉夜巫女应用:快速生成动漫角色,打造个人风格画师

Z-Image-Turbo-辉夜巫女应用&#xff1a;快速生成动漫角色&#xff0c;打造个人风格画师 1. 项目介绍与核心功能 1.1 什么是Z-Image-Turbo-辉夜巫女&#xff1f; Z-Image-Turbo-辉夜巫女是一款基于阿里巴巴通义实验室Z-Image-Turbo模型的图像生成工具&#xff0c;专门针对动…...

3种多平台直播效率提升方案:obs-multi-rtmp插件技术实践指南

3种多平台直播效率提升方案&#xff1a;obs-multi-rtmp插件技术实践指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 核心摘要 多平台直播已成为内容创作者扩大影响力的必要手段&am…...

如何优化多表查询性能_利用SQL视图与索引视图提升速度

SQL Server索引视图未生效主因是查询未精确匹配视图定义&#xff0c;须显式引用视图名或启用ANSI_WARNINGS/ARITHABORT&#xff1b;MySQL视图无加速作用&#xff1b;PostgreSQL物化视图刷新卡顿需用CONCURRENTLY并建唯一索引。SQL Server 里索引视图为什么没生效&#xff1f;多…...

第二部分:为什么要引入 Harness?

一个类比:把新手丢进没有文档的项目 想象你是一个刚入职的工程师,被丢进一个没有任何文档的项目里。 没有 README,代码里没有注释,没有人告诉你怎么跑测试,CI 配置文件藏在某个角落里。你能写出好代码吗? 也许能——如果你足够聪明又足够有耐心。但你会花大量时间在&q…...

2026届最火的十大AI论文网站推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 维普AIGC检测系统&#xff0c;是维普平台针对学术论文&#xff0c;推出的&#xff0c;用于识…...

好写作AI“查重雷达”:用AI技术为论文“扫雷”,让学术诚信“稳如泰山”

写论文时&#xff0c;最让人心跳加速的瞬间是什么&#xff1f;不是选题时的纠结&#xff0c;也不是数据分析的崩溃&#xff0c;而是查重报告出来的那一刻——如果重复率超过30%&#xff0c;轻则被导师“请喝茶”要求修改&#xff0c;重则被扣上“学术不端”的帽子&#xff0c;影…...

AI辅助开发:构思并实现智能交互式谷歌账号注册学习助手

AI辅助开发&#xff1a;构思并实现智能交互式谷歌账号注册学习助手 最近在做一个谷歌账号注册教程项目时&#xff0c;发现传统的图文教程存在几个痛点&#xff1a;用户容易迷失在步骤中、遇到错误时不知道如何解决、非英语用户理解困难。正好接触到InsCode(快马)平台的AI辅助开…...