MongoDb C#驱动程序是否适用于LINQ和动态文档?

Sta*_*tan 5 .net c# linq mongodb mongodb-.net-driver

我想知道我是否甚至可以在未映射的mongo文档上使用LINQ并且是完全动态的.原因是我有ITEM aggrigator,它包含未知的键和值.这只是我之所以选择no-sql解决方案的唯一原因,因为EAV + SQL看起来很慢而且有点过分.

我插了超过100万的文件到我的test收藏有one以ten与它的随机数据字段.现在,我正在尝试将其取回并使用本机Mongo查询,当然.使用LINQ并不是那么多.我在这里做错了吗?

错误

mscorlib.dll中发生了未处理的"System.FormatException"类型异常

附加信息:输入字符串的格式不正确.

码

private static List<BsonDocument> Get(string query)
{
    var client = new MongoClient("mongodb://localhost");
    var server = client.GetServer();
    var db = server.GetDatabase("test");
    var collection = db.GetCollection("items");
    var collectionQuery = collection.AsQueryable();

    var result = collection.Find(Query.EQ("Six", 7962)).ToList(); // THIS WORKS
    //var result = collection.AsQueryable().Where(x => x["Six"] == 7962).ToList(); // ERROR

    return result;
}
Run Code Online (Sandbox Code Playgroud)

i3a*_*non 3

该驱动程序当前不支持动态类型。这是它的 jira 票证: https ://jira.mongodb.org/browse/CSHARP-539

还有一篇关于一些可能的解决方法的有趣帖子: http://roysvork.wordpress.com/2013/04/22/using-linq-to-query-loosely-typed-data-in-mongodb/