using MongoDB.Bson.Serialization;
using MongoDB.Bson.Serialization.Attributes;
[BsonIgnoreExtraElements]
public class MongoDbLogModel
public string Level { get; set; }
public string RenderedMessage { get; set; }
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime? Timestamp { get; set; }
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime UtcTimeStamp { get; set; }
public BsonDocument Properties { get; set; }
[BsonElement("Exception")]
public BsonDocument Exception { get; set; }
static void Main(string[] args)
""_id"": { ""$oid"": ""61a8dadd1ab0e48d55b06626"" },
""UtcTimeStamp"": { ""$date"": ""2021-12-02T14:40:30.436Z"" },
""MessageTemplate"": { },
""RenderedMessage"": """",
""_t"": ""SqlException"",
""Source"": ""Core Microsoft SqlClient Data Provider"",
""HResult"": -2146232060,
""Message"": ""Invalid object name 'SystemControlLogs'."",
""StackTrace"": "" at Microsoft.Data.SqlClien"",
BsonClassMap.RegisterClassMap<MongoDbLogModel>();
var document = BsonSerializer.Deserialize<MongoDbLogModel>(json);
Console.WriteLine(string.Join(',',document.Exception.ToDictionary().Keys));