gpt4 book ai didi

聚合管道期间的 MongoDB String 到 Double 转换

转载 作者:可可西里 更新时间:2023-11-01 09:44:29 26 4
gpt4 key购买 nike

在我的文档中,十进制值存储为 String(因为我在 Java 中将 BigDecimal 转换为 String)。当我一次查看一个文档时,这是完全可以的并且是必需的。但是,我要求在聚合期间将它们视为 Double(例如,$sum)。

有没有一种方法可以让我在聚合管道期间的 $project 操作(或其他方式)期间将 String 转换为 Double。这样我的后续管道将在 Double 字段上执行 $sum

我不考虑将它们存储为 Double 的选项,因为我需要保留每个文档的精度,但如果在聚合操作期间精度丢失,我可以接受。

最佳答案

您可以使用 $toDouble , 本质上是 $convert 的简写用到:“double”

假设我们有一个文档;

{
"str": "3.66"
}

并将string值转换为double

db.collection.aggregate([
{
$addFields: {
double: {
$toDouble: "$str"
}
}
}
])

将导致;

{
"str": "3.66",
"double": 3.66
}

它可以被聚合管道的其他阶段使用的地方。

查看Mongo Playground

关于聚合管道期间的 MongoDB String 到 Double 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23339586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com