Node Express API变慢(使用Mongodb)

时间:2015-10-07 17:20:13

标签: node.js mongodb

在我的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})
}

1 个答案:

答案 0 :(得分:1)

我怀疑是猫鼬,所以做了一些挖掘。关于Mongoose表现我几乎找不到,但我确实得到了this。它已经很老了但可能仍然有效,因为Mongoose仍然为每个返回的对象做了很多魔术。尝试将其作为“精益”查询,您应该获得更好的性能,因为它只是加载数据。