MongoDB聚合运算符:$toInt

MongoDB聚合运算符:$toInt

文章目录

  • MongoDB聚合运算符:$toInt
    • 语法
    • 使用
    • 举例

$toInt聚合运算符将指定的值转换为整数类型。如果指定的值为空或缺失,则返回null;如果值无法被转换为整数,则报错。

语法

{$toInt: <expression>
}

$toInt接受任何有效的表达式。

$toInt$convert表达式的简写形式:

{ $convert: { input: <expression>, to: "int" } }

使用

下表列出了可转换为整数的类型:

输入类型规则
Boolean对于True,返回1,对于False返回0
Decimal返回截断值。截断的小数值必须在整数的最小值和最大值范围内。如果截断值小于最小整数值或大于最大整数值,则无法转换
Double返回截断值。截断的双数值必须在整数的最小值和最大值范围内。如果截断值小于最小整数值或大于最大整数值,则无法转换
Integer直接返回
Long以整数返回Long值,Long值必须在整数的最小值和最大值范围内。如果截断值小于最小整数值或大于最大整数值,则无法转换
String将字符串转换为整数返回,但字符串表示的必须是10进制的整数比如"-5"、“1233”,非10进制的会报错,如:“0x3343”

下表列出了一些转换为整数的示例:

示例结果
$toInt: true1
$toInt: false0
$toInt: 1.999991
$toInt: NumberDecimal("5.5000")5
$toInt: NumberDecimal("9223372036000.000")Error
$toInt: NumberLong("5000")5000
$toInt: NumberLong("922337203600")Error
$toInt: "-2"-2
$toInt: "2.5"Error
$toInt: nullnull

举例

使用下面的脚本创建orders集合:

db.orders.insertMany( [{ _id: 1, item: "apple", qty: "5", price: 10 },{ _id: 2, item: "pie", qty: "10", price: NumberDecimal("20.0") },{ _id: 3, item: "ice cream", qty: "2", price: "4.99" },{ _id: 4, item: "almonds" ,  qty: "5", price: 5 }
] )

下面的聚合操将qty集转换为整数,将Price转换为小数,并计算总价格:

// 定义阶段,转换price为小数,转换qty为整数priceQtyConversionStage = {$addFields: {convertedPrice: { $toDecimal: "$price" },convertedQty: { $toInt: "$qty" },}
};// 定义阶段,计算总价totalPriceCalculationStage = {$project: { item: 1, totalPrice: { $multiply: [ "$convertedPrice", "$convertedQty" ] } }
};db.orders.aggregate( [priceQtyConversionStage,totalPriceCalculationStage
] )

执行的结果为:

{ _id: 1, item: 'apple', totalPrice: Decimal128("50") },
{ _id: 2, item: 'pie', totalPrice: Decimal128("200.0") },
{ _id: 3, item: 'ice cream', totalPrice: Decimal128("9.98") },
{ _id: 4, item: 'almonds', totalPrice: Decimal128("25") }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/7339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqlalchemy 分表实现方案

1.需求及场景概述 现有系统中因历史数据量过大&#xff0c;产生了将历史数据进行按月存储的要求&#xff0c;系统和数据库交互使用的是sqlalchemy&#xff0c;假设系统的原来的历史记录表&#xff08;record&#xff09;如下&#xff1a; 为了将历史数据按月分表存储&#xff0…

蓝桥杯国赛练习题真题Java(矩阵计数)

题目描述 一个 NM 的方格矩阵&#xff0c;每一个方格中包含一个字符 O 或者字符 X。 要求矩阵中不存在连续一行 3 个 X 或者连续一列 3 个 X。 问这样的矩阵一共有多少种&#xff1f; 输入描述 输入一行包含两个整数 N,M (1≤N,M≤5)。 输出描述 输出一个整数代表答案。…

C语言的34个运算符

算术运算符&#xff1a; 加法运算符&#xff08;&#xff09;&#xff1a;对两个操作数进行相加。减法运算符&#xff08;-&#xff09;&#xff1a;从第一个操作数中减去第二个操作数。乘法运算符&#xff08;*&#xff09;&#xff1a;将两个操作数相乘。除法运算符&#xff…

5.12 mybatis之typeAliases别名详解

文章目录 1. 通过typeAlias为每个类指定别名2. 通过package为整个包下的类指定别名 在mapper中为SQL定义POJO返回类型时&#xff0c;要指定POJO的全限定名&#xff0c;如果SQL众多&#xff0c;要为每个SQL书写返回类型的全限定名&#xff0c;比较繁琐&#xff0c;此时可以用typ…

Study--Oracle-01-单实例部署Oracle11G-R2

Oracle版本发布介绍 Oracle 19c和12c和11g功能区别_数据库_oracle_支持 一、CentOS 7 环境准备 1、软件准备 操作系统&#xff1a;CentOS 7 数据库版本: Oracle11g R2 2、操作系统环境配置 关闭selinux &#xff0c;编辑 /etc/selinux/config文件&#xff0c;设置SELINU…

在Ubuntu上搭建并通过systemctl管理Minecraft基岩版服务器

在Ubuntu系统上运行并管理Minecraft基岩版服务器可以通过systemctl实现更高效的服务管理。本文将全面介绍如何从搭建服务器开始到使用systemctl进行管理的整个过程。 第一部分&#xff1a;搭建Minecraft基岩版服务器 1. 下载服务器软件 首先&#xff0c;访问 Minecraft官网 …

宝兰德通过广东教育行业信创适配认证,拓展教育信创生态圈

近日&#xff0c;由宝兰德自主研发的多款中间件产品通过广东省教育行业信创适配中心的适配测试。测试表明&#xff0c;宝兰德四款中间件产品&#xff08;分布式缓存软件V3.0、应用服务器软件V9.5、消息中间件软件 V2.1、Web服务器软件V3.1&#xff09; 与当前主流国产操作系统统…

springAI框架学习总结

springAI 1.springAI基本介绍 springAI是一个AI工程应用框架&#xff0c;其目标是将 Spring 生态系统设计原则&#xff08;例如可移植性和模块化设计&#xff09;应用于 AI 领域&#xff0c;并推广使用 POJO 作为 AI 领域应用程序的构建块。 2.特性 灵活的AIP支持chat,text…

Eayswoole 报错 crontab info is abnormal

在执行一个指定的定时任务时 如 php easyswoole crontab show 报错 crontab info is abnormal 如下图所示&#xff1a; 查询了半天 修改了如下配置&#xff1a; 旧的 // 创建定时任务实例 $crontab new \EasySwoole\Crontab\Crontab($crontabConfig); 修改后&#…

C++初阶学习第五弹——类与对象(下)——类与对象的收官战

类与对象&#xff08;上&#xff09;&#xff1a;C初阶学习第三弹——类与对象&#xff08;上&#xff09;——初始类与对象-CSDN博客 类与对象&#xff08;中&#xff09;&#xff1a;C初阶学习第四弹——类与对象&#xff08;中&#xff09;——刨析类与对象的核心点-CSDN博…

工厂自动化升级改造参考(01)--设备通信协议详解及选型

以下是整合了通信协议的特点、应用场景、优缺点以及常用接口方式的描述: 以太网/IP: 来历: 以太网是一种局域网技术,由罗伯特梅特卡夫和大卫博格在1973年开发。IP是网络层协议,负责在网络中的设备间传输数据。特点:基于标准的以太网技术,使用TCP/IP协议栈,支持高速数据传…

安泰ATA-L系列水声功率放大器驱动水声换能器可以进行哪些实验

水声功率放大器驱动水声换能器是进行水声实验中的关键设备之一&#xff0c;其应用范围广泛&#xff0c;可以进行多种实验和研究。以下是水声功率放大器驱动水声换能器可以进行的一些实验&#xff1a; 声纳性能测试&#xff1a;使用水声功率放大器驱动水声换能器可以进行声纳系统…

K8S中删除Terminating状态的命名空间

1.查看当前命名空间 [rootk8smaster1 home]# kubectl get ns NAME STATUS AGE app Active 16d default Active 17d hd Active 16d ingress-nginx Terminating 5m8s kube-node-lease …

《Video Mamba Suite》论文笔记(1)Mamba在时序建模中的作用

原文链接 https://arxiv.org/abs/2403.09626https://arxiv.org/abs/2403.09626 原文代码 https://github.com/OpenGVLab/video-mamba-suitehttps://github.com/OpenGVLab/video-mamba-suite 原文笔记 What 《Video Mamba Suite: State Space Model as a Versatile Altern…

Windows 系统使用Jenkins 实现CI一键打包部署操作

一 下载安装jenkins jenkins 中文官网链接: 下载地址 点击下载&#xff0c;完成后是一个.msi后缀的安装文件&#xff0c;双击安装 安装和普通软件一样&#xff0c;一路next&#xff0c;安装路径自己设置一下&#xff0c;默认是C盘&#xff0c;我C盘不够用了&#xff0c;设置…

stm32之hal库i2s驱动的封装记录

前言 本次使用的框架为threadxfilexshell组件 程序 共用驱动文件&#xff08;dma和nvic&#xff09; nvic文件 头文件 /** Copyright (c) 2024-2024,shchl** SPDX-License-Identifier: Apache-2.0** Change Logs:* Date Author Notes* 2024-5-3 shch…

Mac电脑设置hosts的方法

hosts文件是什么 hosts文件是一个系统文件&#xff0c;通过绑定域名与ip的关系&#xff0c;当本机访问该域名时 从这个文件中如果找到了对应域名&#xff0c;则转发到对应ip&#xff1b;如果没有找到对应域名&#xff0c;则走默认的DNS公网解析。 好处&#xff1a; 加速访问…

如何delphi7中添加自定义的控件或组件

1.问题 为了编写方便&#xff0c;会自己生成一些自定义的控件。 XXX.PAS:源码文件&#xff0c;后续可以再调整 XXX.DCU:编译后的文件 2.解决办法 1.自定义控件的文件如下 2.将这些文件保留在程式代码中&#xff0c;万一丢失会导致程式开启后报是否忽略 3.选择菜单栏中的com…

我独自升级崛起游戏账号登录注册教程 (5.8最新版)

新韩漫公司所发布的这项动作游戏已向玩家们敞开大门&#xff0c;为大家带来了前所未有的游戏体验和乐趣。这个游戏内包含了大量令人着迷的故事、令人印象深刻的战斗场景以及丰富多样的娱乐元素。在这其中最为引人注目的一点就是游戏内容中融入了“虚拟角色”的元素&#xff0c;…

QT:基于QT实现Boost搜索引擎客户端

文章目录 写在前面关于服务器开源仓库和项目上线其他文档说明 登录界面主体设计思路验证登录注册功能 注册界面主体界面main函数中绑定槽函数 写在前面 关于服务器 本项目使用的是一个仿mudou库one-thread-one-loop式并发服务器的组件&#xff0c;关于该组件的细节内容在下面…