kel*_*oti 12 c# linq query-optimization mongodb mongodb-.net-driver
有没有办法.explain()在Linq查询上运行或等效?我想知道
.explain()(使用的索引等)的输出cir*_*rus 10
如果你有一个查询包装器,你可以很容易地获得Json;
var qLinq = Query<T>.Where(x => x.name=="jim");
Console.WriteLine(qLinq.ToJson());
Run Code Online (Sandbox Code Playgroud)
MongoCursor上还有一个Explain()方法,所以你可以这样做;
var exp = Collection.FindAs<T>(qLinq).Explain()
Console.WriteLine(exp.ToJson());
Run Code Online (Sandbox Code Playgroud)
所以,如果你想要花时间,"毫米"就在那里;
var msTaken = exp.First(x => x.Name == "millis").Value.AsInt32;
Run Code Online (Sandbox Code Playgroud)
如果你有IQueryable,尝试这样的事情;
void Do(MongoCollection col, IQueryable iq)
{
// Json Mongo Query
var imq = (iq as MongoQueryable<Blob>).GetMongoQuery();
Console.WriteLine(imq.ToString());
// you could also just do;
// var cursor = col.FindAs(typeof(Blob), imq);
var cursor = MongoCursor.Create(typeof(Blob), col, imq, ReadPreference.Nearest);
var explainDoc = cursor.Explain();
Console.WriteLine(explainDoc);
}//Do()
Run Code Online (Sandbox Code Playgroud)
如果您想在库中使用此功能,我只需创建一个名为的GitHub项目
用于.NET的MongoDB查询助手
https://github.com/mikeckennedy/mongodb-query-helper-for-dotnet
它会:
如果您觉得有趣,请查看并做出贡献.
| 归档时间: |
|
| 查看次数: |
7338 次 |
| 最近记录: |