sql >> Databáze >  >> NoSQL >> MongoDB

Aby se Json.NET + MongoDB Bson hrály pěkně dohromady

Ano, musíte explicitně implementovat konverzi mezi JObject a BsonDocument typ. Můžete implementovat svůj vlastní převodník a používat atributy, abyste se vyhnuli procházení vaší struktury typu C#. Zkuste:

public class Detail
{
    [BsonSerializer(typeof(DynamicSerializer))]
    public dynamic Value { get; set; }
}

public class DynamicSerializer : SerializerBase<dynamic>
{
    public override dynamic Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
    {
        var myBSONDoc = BsonDocumentSerializer.Instance.Deserialize(context);
        return (dynamic)JObject.Parse(context.ToString());
    }

    public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, dynamic value)
    {
        var bson = MongoDB.Bson.BsonDocument.Parse(value.ToString());
        BsonDocumentSerializer.Instance.Serialize(context, args, bson);
    }
}



  1. Vytvoření oblasti pro správu za pět minut pomocí AdminBro, express, mongoDB, mongoose

  2. Dotaz MongoDB pro dokument starší než 30 sekund

  3. Aktualizace konkrétního klíče/hodnoty uvnitř pole pole pomocí MongoDB

  4. Dotaz MongoDB s elemMatch na data vnořených polí