Mongodb toArray()的性能

我有一个收集“匹配”与727000文件里面。 它里面有6个字段,没有数组只是简单的整数和对象ID。 我正在查询收集如下:

matches.find({ $or: [{ homeTeamId: getObjectId(teamId) }, { awayTeamId: getObjectId(teamId) } ], season: season, seasonDate: { '$gt': dayMin, '$lt': dayMax } }).sort({ seasonDate: 1 }).toArray(function (e, res) { callback(res); }); 

结果只返回大约7-8个文件。 查询需要约100ms,我认为这是相当合理的,但主要问题是,当我调用方法toArray(),它增加了约600毫秒! 我正在我的笔记本电脑,英特尔酷睿I5,6GB内存上运行服务器,但我不能相信它为7-8文件增加了600毫秒。 尝试使用mongodb本地驱动程序,现在切换到mongoskin,并获得同样缓慢的结果。 有什么build议么 ?

toArray()方法迭代抛出所有的游标元素并将它们加载到内存中,这是一个非常成本的操作。 也许你可以添加索引来提高你的查询性能,和/或避免toArray迭代你自己抛出光标。

问候,Moacy