MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Deserialisasi khusus

Anda perlu membuat IBsonSerializer atau SerializerBase<> dan lampirkan ke properti yang ingin Anda buat serial menggunakan BsonSerializerAttribute . Sesuatu seperti berikut:

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; }
}

Jika Anda tidak ingin menggunakan atribut, Anda dapat membuat IBsonSerializationProvider dan daftarkan menggunakan BsonSerializer.RegisterSerializationProvider .

Dokumentasi lengkap serialisasi MongoDB C# Bson dapat ditemukan di sini




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $pop

  2. Atribut kreasi_waktu Mongoengine dalam Dokumen

  3. Bagaimana cara meminta MongoDB untuk menguji apakah suatu item ada?

  4. Luwak findOneAndUpdate dan upsert tidak mengembalikan kesalahan, tidak ada dokumen yang terpengaruh

  5. Menggabungkan dua koleksi di MongoDB