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执行计划详解

如何通过MongoDB自带的Explain功能提高检索性能?

MongoDB 索引 和 explain 的使用

MongoDB 索引 和 explain 的使用

nodejs MongoDB 索引 和 explain 的使用(11)

mongodb之使用explain和hint性能分析和优化