2015-10-07 35 views
0

在我的Mac上查询Mongo的收集与Robomongo我得到的所有3,430结果在短短100毫秒:节点快递API慢(与MongoDB的)

db.getCollection('profiles').find({'Uploader':/iazi/}) 

当查询我的节点/快速/猫鼬API在本地运行,我必须等待2秒钟才能得到完全相同的数据。

这里是我的代码:

server.js

router.route('/profiles').get(profile.rawList); 

profile.js

exports.rawList = function(req, res) { 
    var domain = '@'+req.user.email.split('@').pop(); 
    Profile 
    .find({'Uploader': new RegExp(domain, 'i')}) 
    .exec(function(err, data){ 
     res.send(data); 
    }) 
} 

谁是这些1,900ms差的罪魁祸首?它是猫鼬吗?它是节点吗?我写错了什么?

附加信息:在短短的8ms

exports.superSimple = function(req, res) { 
    res.json({foo:bar}) 
} 
+0

查询是否一样?第一个是所有者,第二个是上传者?你可以解释查询http://docs.mongodb.org/manual/reference/method/cursor.explain/ ,看看mongo正在采取什么策略 – dm03514

+0

谢谢你好。我使用Uploader在Robomongo中再次尝试,速度一样快......我相应地编辑了我的问题。 –

回答

1

我怀疑猫鼬这样做了一些挖以下响应。我能找到猫鼬的表现很少,但我确实得到了this。它很老,但可能仍然有效,因为Mongoose对每个返回的对象仍然有很大的魔力。尝试将其作为“精简”查询来执行,并且您应该获得更好的性能,因为它只是加载数据。

+0

谢谢,它缩短了超过50%的响应时间。 –