在我的Mac上使用Robomongo查询Mongo集合时,我在短短100多分钟内获得了所有3,430个结果:
db.getCollection('profiles').find({'Uploader':/iazi/})
在查询本地运行的Node / Express / Mongoose 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,900毫秒差异的罪魁祸首是谁?是猫鼬吗?是节点吗?我写错了什么?
附加信息:以下仅在8毫秒内响应
exports.superSimple = function(req, res) {
res.json({foo:bar})
}
答案 0 :(得分:1)
我怀疑是猫鼬,所以做了一些挖掘。关于Mongoose表现我几乎找不到,但我确实得到了this。它已经很老了但可能仍然有效,因为Mongoose仍然为每个返回的对象做了很多魔术。尝试将其作为“精益”查询,您应该获得更好的性能,因为它只是加载数据。