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

Tùy chỉnh deserialization

Bạn cần tạo IBsonSerializer hoặc SerializerBase<> và đính kèm nó vào thuộc tính bạn muốn tuần tự hóa bằng BsonSerializerAttribute . Một cái gì đó như sau:

public class BsonStringNumericSerializer : SerializerBase<double>
{
    public override double Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
    {
        var type = context.Reader.GetCurrentBsonType();
        if (type == BsonType.String)
        {
            var s = context.Reader.ReadString();
            if (s.Equals("N/A", StringComparison.InvariantCultureIgnoreCase))
            {
                return 0.0;
            }
            else
            {
                return double.Parse(s);
            }
        }
        else if (type == BsonType.Double)
        {
            return context.Reader.ReadDouble();
        }
        // Add any other types you need to handle
        else
        {
            return 0.0;
        }
    }
}

public class YourClass
{
    [BsonSerializer(typeof(BsonStringNumericSerializer))]
    public double YourDouble { get; set; }
}

Nếu bạn không muốn sử dụng các thuộc tính, bạn có thể tạo một IBsonSerializationProvider và đăng ký nó bằng BsonSerializer.RegisterSerializationProvider .

Bạn có thể tìm thấy toàn bộ tài liệu về quá trình tuần tự hóa MongoDB C # Bson tại đây




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Định dạng ISODate từ Mongodb

  2. mongoose:tìm dữ liệu bằng cách lặp lại trên một mảng mô hình

  3. Sử dụng Meteor tìm nạp hoặc tìm trong các chức năng của trình trợ giúp mẫu?

  4. mongoose / mongodb tùy chỉnh sắp xếp

  5. Định cấu hình Xác thực MongoDB-CR làm Mặc định trên MongoDB 3.x