MongoDB - 不能使用 .explain() 在 C# 代码中获取查询信息?
Posted
技术标签:
【中文标题】MongoDB - 不能使用 .explain() 在 C# 代码中获取查询信息?【英文标题】:MongoDB - can't use .explain() to get query info in C# code? 【发布时间】:2016-09-28 09:14:12 【问题描述】:我正在使用 Mongo 2.2。如何使用 C# 访问查询信息?
目前有以下获取我的数据:
var records = _collection.Find(filters).ToList<Vehicle>();
我试图添加一个 .explain(),类似于在查询结束时在 Robomongo 中可以执行的操作:
var records = _collection.Find(filters).explain();
但是,我相信它不存在,因为它不是游标。有谁知道我如何在 C# 中获取此查询数据?
【问题讨论】:
你想要explain
C# 中的结果数据?
是的,确切地说,解释结果数据。
您在 C# 中使用哪个 mongo 驱动程序?以及为什么要在 C# 中获得此结果,因为此信息仅与查询统计信息有关
Drivers: MongoDb.Bsonv(2.2.4), MongoDb.Driver(v2.2.4), MongoDb.Driver.Core(v2.2.4) - 我需要它,因为我们想看看到底是什么查询在应用程序中执行。
【参考方案1】:
MongoCollection 类的 FindAs() 方法产生 MongoCursor 类的 .Explain() 方法。我从this link 找到了答案。
var qLinq = Query<T>.Where(x => x.name=="jim");
var exp = Collection.FindAs<T>(qLinq).Explain()
【讨论】:
以上是关于MongoDB - 不能使用 .explain() 在 C# 代码中获取查询信息?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过MongoDB自带的Explain功能提高检索性能?