我是MongoDB和Node.js的新手。
我编写了一个示例应用程序,用于衡量使用Mongoose对MongoDB的get请求的速度。
我有一个大约有200000条记录的集合。 在我的代码中,我希望通过查询得到前100000行:
var query = db.myCollection.find().limit(100000);
query.exec(function(err, data){
// ....
});
它花了大约99s,我认为速度太慢了。 有没有人对如何加快查询有想法?
非常感谢你!
答案 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);