MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Trình điều khiển c # mongodb cách truyền giá trị kép mongo thành giá trị thập phân c #

Lựa chọn tốt nhất có lẽ sẽ đi với điều này:

monto = document["monto"].ToDecimal();

Lý do tại sao điều này hoạt động rất độc đáo là BsonValue trừu tượng type thực hiện một phương thức giống như sau:

public virtual decimal ToDecimal()

Các triển khai cụ thể của BsonValue (ví dụ:BsonInt32 , BsonInt64 , BsonDouble v.v.) ghi đè thành viên này bằng phương thức bên dưới, cung cấp cho bạn chính xác những gì bạn muốn, bất kể trình điều khiển có giải mã int, dài hay kép từ tài liệu được lưu trữ hay không:

public override decimal ToDecimal()
{
    return (decimal)_value;
}

Ngoài ra, trong trường hợp cụ thể của bạn (và nếu tất cả các tài liệu trong phạm vi đều có int được lưu trữ trong trường "monto" của chúng), bạn có thể chỉ cần viết:

monto = Convert.ToDecimal(document["monto"].AsInt32)

hoặc thậm chí chỉ

monto = (decimal)(document["monto"].AsInt32)

giống nhau về mặt ngữ nghĩa.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để bỏ qua null trong khi giải nén tài liệu MongoDB?

  2. Chỉ mục duy nhất trong mongoDB 3.2 bỏ qua các giá trị null

  3. Mongodb trả về nhiều kết quả mảng phụ và loại trừ các kết quả trả về khác

  4. Tổng hợp MongoDB trên một phạm vi

  5. Hủy đăng ký MongoDB BSON