我正在寻找如何使用MongoDB保存小数,并偶然发现了一些想法。
将其另存为String(因为我使用的是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 }