如何在 MongoDB 上舍入小数而不使用 Decimal128 类型

问题描述 投票:0回答:1

我有关于小数支持的问题。我想使用小数,并且我知道 Mongo 建议使用 Decimal128 类型。它解决了数据库上的舍入格式,但另一方面,我需要在获取数据时将十进制(BSON)写入数字转换器获取器。

我想使用小数而不更改数据类型。我经常使用 mongoose 的 $inc、$dec 运算符进行批量操作。如果我继续使用 Number(on mongoose, Double on Mongo) 类型,我可以看到一些操作的很长的小数结尾。例如,如果我 $inc 2.4 和 1.2 结果将是 3.5999999999999996 (浮点数问题)。

有没有办法让 Mongo 通过 mongoose 模型或直接在数据库上将选定字段的最终值舍入到最大值 2? setter不起作用是因为2.4或1.2没有问题,问题是inc操作的结果。或者后挂钩不适用于散装。

提前致谢。

node.js mongodb mongoose decimal mongoose-schema
1个回答
0
投票

你可以在 mongo 中使用 $round 。

参考这个 https://www.mongodb.com/docs/manual/reference/operator/aggregation/round/

© www.soinside.com 2019 - 2024. All rights reserved.