我的mongodb已安装在远程计算机上,已启用索引。 收集文件总数约为 15 000 000 。 在我的本地计算机上,我使用mongoose find()进行搜索,最后返回 60000 结果。 但是find()将需要 70秒 。然后我使用lean(),时间成本约为 40秒 ,好一点但仍然太长。
仍然在我的本地机器上,我使用robomongo客户端连接到这个远程mongodb,进行相同的搜索,只有 28ms
var UserSchema = new Schema({
monitorName : {type: String},
value : {type: Number},
updateDate : {type: String}
});
我的搜索条件如下:
Model.find().where('updateDate').gt('1/18/2017, 11:37:25 PM').lt('1/19/2017, 11:37:25 PM').lean().exec(function(err, docs){ ......
答案 0 :(得分:0)
我非常肯定Robomongo使用
.limit(<n>)
&amp; .skip(<n>)
(50条记录)
默认情况下。
因此,它不会检索与常规.find()
操作一样多的集合。
这可能是为了避免用户意外地运行阻止UI的大量查询,并使窗口无响应的情况。