紀錄如何使用MongoDB .NET Driver處理 Decimal 值
MongoDB .NET Driver Handle Decimal
在資料型別轉換的部分可使用BsonRepresentation這個修飾attribute幫我們做轉換,但由於Mongo 3.4之前尚未支援BsonDecimal128,所以僅能使用BsonType.Double
測試程式碼:
Member.cs:
1 | using MongoDB.Bson; |
測試程式結果(依序為:BsonRepresentation為BsonType.Double,不設定BsonRepresentation,BsonRepresentation為BsonType.Decimal128):
這邊我們其實是將Decimal的值傳入0.123456789876543212345678987654321M,但從結果來看他會將超出的部分進位後截斷
蛋如果是我們指定BsonRepresentation為BsonType.Double且資料長度超出轉換長度則會拋出例外(exception).
另外,先前介紹跨平台的MongoDB UI Admin 工具 - Robomongo則在顯示decimal資料上有問題,會出現unsupported的狀況.