Node.js mongclient批处理

我在尝试使用mongodb本机客户端从mongdb集合中获取10,000行时遇到了问题。 它可以处理大约9700条logging的批处理,但不会返回任何更大批处理大小的数据。 这里是代码片段..任何想法是什么阻止它?

app.get('/aps/allclients' , function(req,res) { MongoClient.connect(url, function(err, db) { var collection = db.collection('allclients'); collection.find({},{"batchSize":10000}).toArray(function(err, docs){ // works for batch size 9700 or less but not 10000 res.send(JSON.stringify(docs)); }); db.close(); }); }); 

在asynchronoustoArray完成之前,您正在closures连接。

db.close()调用放在callback中:

 var collection = db.collection('allclients'); collection.find({}, {"batchSize":10000}).toArray(function(err, docs){ res.send(JSON.stringify(docs)); db.close(); }); 

也就是说,你不应该在每个请求上打开和closures你的MongoClient连接池。 只需在应用程序启动时将其打开,并在closures时closures它。