如何在nodejs中使用mongoose加速查询mongdb

时间:2015-12-04 08:19:05

标签: javascript node.js mongoose mongodb-query

我是MongoDB和Node.js的新手。

我编写了一个示例应用程序,用于衡量使用Mongoose对MongoDB的get请求的速度。

我有一个大约有200000条记录的集合。 在我的代码中,我希望通过查询得到前100000行:

var query = db.myCollection.find().limit(100000);
query.exec(function(err, data){
      // ....
});

它花了大约99s,我认为速度太慢了。 有没有人对如何加快查询有想法?

非常感谢你!

1 个答案:

答案 0 :(得分:0)

使用mongodb,您可以索引某些密钥,以便在查询时提高性能。但在这种情况下,这将不起作用。

您的99s可能是由您的PC造成的,它无法在一次性处理这种繁重的数据(这是完全可以理解的)。

这绝对不是与mongodb有关,而是与你的测试机内存有关。

但是你可以通过管道结果改进它:

// use our lame formatter
var format = new ArrayFormatter;

// first pipe the querystream to the formatter
myCollection.find().stream().pipe(format);

// then pipe the formatter to the response
// (node 0.4x style pipe non-chaining)
format.pipe(res);

// In node 0.6 we can P.find().stream().pipe(format).pipe(res);

this gist