MongoDB tidak mendukung desimal dengan benar hingga MongoDB v3.4. Sebelum versi ini, desimal disimpan sebagai string untuk menghindari kesalahan presisi.
Sebelum v3.4 Simpan desimal sebagai string, tetapi ini mencegah operasi aritmatika. Operator sebagai $min
, $avg
, ... tidak akan tersedia. Jika presisi bukan masalah besar, maka Anda mungkin dapat beralih ke double
.
v3.4+ Anda perlu memastikan bahwa prasyarat berikut benar:
- Server MongoDB setidaknya harus v3.4.
- MongoCSharpDriver setidaknya harus v2.4.3.
- Database harus memiliki
featureCompatibilityVersion
setel ke'3.4'
. Jika database Anda telah dibuat oleh versi MongoDB yang lebih lama dan Anda telah memutakhirkan server Anda ke v3.4, database Anda mungkin masih menggunakan versi yang lebih lama.
Jika Anda memiliki semua properti yang ditetapkan, maka daftarkan serializer berikut untuk menggunakan decimal128
ketik:
BsonSerializer.RegisterSerializer(typeof(decimal), new DecimalSerializer(BsonType.Decimal128));
BsonSerializer.RegisterSerializer(typeof(decimal?), new NullableSerializer<decimal>(new DecimalSerializer(BsonType.Decimal128)));