sql >> Database teknologi >  >> NoSQL >> MongoDB

Er der mongodb C# driver support System.Dynamic.DynamicObject i .NET 4?

Jeg oprettede en ligetil udvidelse til MongoDB-driveren, der gen-serialiserer BSON-dokumentet ved hjælp af Json.NET og deserialiserer det som en dynamik. Ved at inkludere følgende klasse kan du simpelthen konvertere dine MongoDB-forespørgsler til dynamiske som denne

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

Udvidelsesklasse:

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

Sørg for at henvise til Newtonsoft.Json.dll (http://james.newtonking.com /projects/json-net.aspx )



  1. Java Client til at forbinde ElasticCache Redis Cache Node

  2. Indeks bliver ikke oprettet, tekstindeks påkrævet for $text-forespørgsel - mongoose

  3. DbRef med Mongoose - mongoose-dbref eller befolke?

  4. Mongo Forespørg på et indlejret felt i en matrix.