MongoDB聚合运算符:$toInt

2024-05-07 07:12
文章标签 mongodb 运算符 聚合 toint

本文主要是介绍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") }

这篇关于MongoDB聚合运算符:$toInt的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966669

相关文章

Java逻辑运算符之&&、|| 与&、 |的区别及应用

《Java逻辑运算符之&&、||与&、|的区别及应用》:本文主要介绍Java逻辑运算符之&&、||与&、|的区别及应用的相关资料,分别是&&、||与&、|,并探讨了它们在不同应用场景中... 目录前言一、基本概念与运算符介绍二、短路与与非短路与:&& 与 & 的区别1. &&:短路与(AND)2. &:非短

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

【重学 MySQL】十九、位运算符的使用

【重学 MySQL】十九、位运算符的使用 示例检查权限添加权限移除权限 在 MySQL 中,位运算符允许你直接在整数类型的列或表达式上进行位级操作。这些操作对于处理那些需要在二进制表示上进行直接修改或比较的场景特别有用,比如权限管理、状态标记等。 &(位与) 对两个数的二进制表示进行位与操作。只有两个相应的二进制位都为 1 时,结果的该位才为 1,否则为 0。 |(位

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

第二十四章 rust中的运算符重载

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust中的运算符重载 目录 注意一、前言二、基本使用三、常用运算符四、通用约束 一、前言 C/C++中有运算符重载这一概念,它的目的是让即使含不相干的内容也能通过我们自定义的方法进行运算符操作运算。 比如字符串本身是不能相加的,但由于C++中的String重载了运算符+,所以我们就可以将两个字符串进行相加、但实际

ElasticSearch的DSL查询⑤(ES数据聚合、DSL语法数据聚合、RestClient数据聚合)

目录 一、数据聚合 1.1 DSL实现聚合 1.1.1 Bucket聚合  1.1.2 带条件聚合 1.1.3 Metric聚合 1.1.4 总结 2.1 RestClient实现聚合 2.1.1 Bucket聚合 2.1.2 带条件聚合 2.2.3 Metric聚合 一、数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如:

《C++中的移动构造函数与移动赋值运算符:解锁高效编程的最佳实践》

在 C++的编程世界中,移动构造函数和移动赋值运算符是提升程序性能和效率的重要工具。理解并正确运用它们,可以让我们的代码更加高效、简洁和优雅。 一、引言 随着现代软件系统的日益复杂和对性能要求的不断提高,C++程序员需要不断探索新的技术和方法来优化代码。移动构造函数和移动赋值运算符的出现,为解决资源管理和性能优化问题提供了有力的手段。它们允许我们在不进行不必要的复制操作的情况下,高效地转移资源