我当前的数据中有文本索引。我正在执行正则表达式搜索,我想确保使用正确的索引。在mongo shell中,我只是使用 explain ,但是如何在C#驱动程序中使用 explain ?
这是我执行查询的方式:
public async Task<IEnumerable<GridFSFileInfo>> Find(string fileName)
{
var filter = Builders<GridFSFileInfo>.Filter.Regex(x => x.Filename, $"/.*{fileName}.*/i");
var options = new FindOptions
{
Modifiers = new BsonDocument("$hint", "filename_text")
};
var result = new List<GridFSFileInfo>();
using (var cursor = await Collection.Find(filter, options).ToCursorAsync())
{
while (await cursor.MoveNextAsync())
{
var batch = cursor.Current;
result.AddRange(batch);
}
}
return result;
}
是否存在诸如 Collection.Find(filter,options).Explain()之类的返回字符串之类的东西?我在网上搜索后发现:Is there an "Explain Query" for MongoDB Linq?但是似乎没有解释方法...
答案 0 :(得分:0)
AFAIK,最新版本的驱动没有提供公共API来使用解释操作,如果你需要指定这个,你可以尝试通过RunCommand<BsonDocument>("{ find query in json format with explain that you can check in the shell }")