[英]Sortable decimal value (no double/float). Which way to choose?
我一直在寻找如何使用MongoDB保存小数,偶然发现了一些想法。
将其另存为字符串(因为我使用的是Java Spring Framework,这是默认实现)
value: "3.44"
使用具有未缩放值+缩放比例的嵌套文档将其保存为ebay方式: http : //www.technology-ebay.de/the-teams/mobile-de/blog/mapping-bigdecimals-with-morphia-for-mongodb。 HTML
value: { unscaled: NumberLong(344) , scale: 2 }
分别保存小数点前后的数字
value: { major: 3 , minor: 44 }
基本上我会说:
是没有用的,因为我无法将其排序为数字(即"9" > "12"
)
如果ebay使用此功能,那就不会那么糟。 但是我不知道如何对这些值进行排序?!
排序非常简单: db.collection.find().sort({"value.major":1, "value.minor":1})
您如何实施?
如何使用方法2.
排序?
谢谢!
将major
存储为整数,将minor
存储为字符串:
value: { major: 3 , minor: "44" }
定义最大 小数点的精度,然后可以用零填充次要值。 例如,精度= 10:
value: { major: 3 , minor: 4400000000 }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.