sql >> Database >  >> NoSQL >> MongoDB

Is er mongodb C # driverondersteuning System.Dynamic.DynamicObject in .NET 4?

Ik heb een ongecompliceerde uitbreiding van de MongoDB-driver gemaakt die het BSON-document opnieuw serialiseert met behulp van Json.NET en het als een dynamiek deserialiseert. Door de volgende klasse op te nemen, kunt u uw MongoDB-query's eenvoudig op deze manier naar dynamisch converteren

dynamic obj = collection.FindOneByIdAs<BsonDocument>(someObjectId).ToDynamic();

Uitbreidingsklasse:

public static class MongoDynamic
{
    private static System.Text.RegularExpressions.Regex objectIdReplace = new System.Text.RegularExpressions.Regex(@"ObjectId\((.[a-f0-9]{24}.)\)", System.Text.RegularExpressions.RegexOptions.Compiled);
    /// <summary>
    /// deserializes this bson doc to a .net dynamic object
    /// </summary>
    /// <param name="bson">bson doc to convert to dynamic</param>
    public static dynamic ToDynamic(this BsonDocument bson)
    {
        var json = objectIdReplace.Replace(bson.ToJson(), (s) => s.Groups[1].Value);
        return Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(json);
    }
}

Zorg ervoor dat u verwijst naar Newtonsoft.Json.dll (http://james.newtonking.com /projects/json-net.aspx )



  1. Wat is de juiste manier om een ​​mongodb-replicaset in te stellen met behulp van docker en fig?

  2. Beperk het aantal veldretouren van mongodb in Meteor

  3. Snellere manier om alle sleutels en waarden in redis db . te herhalen

  4. Database.yml verwijderen bij gebruik van Mongoid in Rails 3.2