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

MongoDB聚合运算符:$add

$add运算符将将数字相加或将数字和日期相加。如果参数之一是日期,则
$add会将其他参数视为毫秒,并添加到日期中。

语法

{ $add: [ <expression1>, <expression2>, ... ] }

参数可以是任何有效的表达式,只要能否解析为数值或日期即可。

从 MongoDB 6.1 开始,可以优化$add操作,为提高性能,可在参数列表末尾分组引用。例如:

$add: [ 1, 2, 3, '$a', '$b', '$c' ]

举例

示例使用sales集合:

{ "_id" : 1, "item" : "abc", "price" : 10, "fee" : 2, date: ISODate("2014-03-01T08:00:00Z") }
{ "_id" : 2, "item" : "jkl", "price" : 20, "fee" : 1, date: ISODate("2014-03-01T09:00:00Z") }
{ "_id" : 3, "item" : "xyz", "price" : 5,  "fee" : 0, date: ISODate("2014-03-15T09:00:00Z") }

增加成员

下面的聚合使用$add表达式来计算总成本:

db.sales.aggregate([{ $project: { item: 1, total: { $add: [ "$price", "$fee" ] } } }]
)

在日期上执行加法

下面的聚合使用$add 表达式计算billing_date,方法是为date字段中添加 3*24*60*60000 毫秒(即3天):

db.sales.aggregate([{ $project: { item: 1, billing_date: { $add: [ "$date", 3*24*60*60000 ] } } }]
)

操作返回下面的结果:

{ "_id" : 1, "item" : "abc", "billing_date" : ISODate("2014-03-04T08:00:00Z") }
{ "_id" : 2, "item" : "jkl", "billing_date" : ISODate("2014-03-04T09:00:00Z") }
{ "_id" : 3, "item" : "xyz", "billing_date" : ISODate("2014-03-18T09:00:00Z") }
http://www.lryc.cn/news/301773.html

相关文章:

  • 《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_4
  • 数据库第四次实验
  • 基于PPNSA+扰动算子的车间调度最优化matlab仿真,可以任意调整工件数和机器数,输出甘特图
  • UnityShader——06UnityShader介绍
  • 人工智能学习与实训笔记(一):零基础理解神经网络
  • LeetCode刷题小记 一、【数组】
  • iOS总体框架介绍和详尽说明
  • 【C++】const与constexpr详解
  • 蓝桥杯:日期统计讲解(C++)
  • Python re.findall()中的正则表达式包含多个括号时的返回值——包含元组的列表
  • Python——列表
  • 无人机图像识别技术研究及应用,无人机AI算法技术理论,无人机飞行控制识别算法详解
  • 清华AutoGPT:掀起AI新浪潮,与GPT4.0一较高下
  • 人工智能学习与实训笔记(二):神经网络之图像分类问题
  • SSM框架,spring-aop的学习
  • 【设计模式】4、策略模式
  • 【C++学习手札】多态:掌握面向对象编程的动态绑定与继承机制(深入)
  • 【机构vip教程】Android SDK手机测试环境搭建
  • 2024.2.18
  • Haproxy实验
  • CSRNET图像修复,DNN
  • 004 - Hugo, 分类
  • Vue3之ElementPlus中Table选中数据的获取与清空方法
  • Leetcode 516.最长回文子序列
  • cool Node后端 中实现中间件的书写
  • Leecode之面试题消失的数字
  • STM32的三种下载方式
  • 华为 huawei 交换机 接口 MAC 地址学习限制接入用户数量 配置示例
  • 使用Python生成二维码的完整指南
  • 排序前言冒泡排序