我试图用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/