c# - 如何从 C# 计算 MongoQuery 的时间

标签 c# mongodb mongodb-.net-driver

我尝试在 C# 中对带有索引的列进行 Mongo 查询计时:

DateTime startTime = DateTime.Now;
MongoCollection<BsonDocument> voteCol = database.GetCollection<BsonDocument>("XXX");
var query = new QueryDocument("YYY", "23915");
MongoCursor<BsonDocument> cursor = voteCol.Find(query).SetSortOrder(SortBy.Descending("ZZZ")).SetLimit(10).SetSkip(20);
TimeSpan elapsedTime = DateTime.Now - startTime;
Console.WriteLine("Elapsed: {0}, in seconds: {1}, in milliseconds: {2} ", 
elapsedTime, elapsedTime.TotalSeconds, elapsedTime.TotalMilliseconds, cursor.Count());

每次它等于 0 时我都会得到结果。 这是否意味着它太快了或者我错过了什么?

最佳答案

这是因为你实际上没有从 mongodb 加载数据。当您开始迭代 MongoCursor 时,数据将被加载。您可以轻松使用 ToList 方法从数据库加载数据:

var data = voteCol.Find(query)
    .SetSortOrder(SortBy.Descending("ZZZ"))
    .SetLimit(10)
    .SetSkip(20)
    .ToList();

我还建议使用Stopwatch评估耗时。

关于c# - 如何从 C# 计算 MongoQuery 的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7144789/

相关文章:

Mongodb C# 驱动程序 - 无法使用管理员身份验证访问其他数据库

c# - MongoDB C# 驱动程序 - 如何使用 Dictionary<string, string> 列表插入批处理

c# - mongodb C# 驱动程序更新多个字段

c# - 连续发送鼠标位置到另一台机器

c# - 计时器无法在 C# 中的单独类中工作

mongodb - EMR [使用 MRJob] 的输入数据如何跨节点分布?

android - 在数据库中存储可翻译的 android 字符串的最佳实践

c# - 如何回滚对绑定(bind)的 DataGridView 所做的更改?

c# - 我的 vs2008 文本格式化插件非常慢

mongodb - 查找与家庭住址最接近的匹配项