聚合管道期间MongoDB字符串到双精度转换

Poo*_*rna 5 mongodb aggregation-framework

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

有没有办法让我可以在聚合管道期间的操作(或其他方式)期间隐藏Stringto 。这样我的连续管道将在现场进行。Double$project$sumDouble

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

aks*_*aks 3

聚合管道中没有运算符可以进行转换。是否可以存储两个不同的值,一个作为 BigDecimal / String,另一个作为 double / float 值?如果您可以忽略浮点值导致的不稳定,那么这可能是快速而肮脏的选项之一。