我尝试在 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/