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

Apakah ada driver mongodb C# yang mendukung System.Dynamic.DynamicObject di .NET 4?

Saya membuat ekstensi langsung ke driver MongoDB yang membuat serial ulang dokumen BSON menggunakan Json.NET dan menghapusnya sebagai dinamis. Dengan menyertakan kelas berikut, Anda cukup mengonversi kueri MongoDB Anda menjadi dinamis seperti ini

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

Kelas ekstensi:

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

Pastikan untuk merujuk Newtonsoft.Json.dll (http://james.newtonking.com /projects/json-net.aspx )



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodump Failed:opsi buruk:hanya dapat membuang satu koleksi ke stdout

  2. mengganti nama koleksi dengan mongoDB

  3. Doctrine ODM / MongoDB tidak mencoba lagi kueri?

  4. Node mongodb:Kesalahan:koneksi ditutup karena parseError

  5. Bagaimana MongoDB menghindari kekacauan injeksi SQL?