Mongodb通过nodejs并行查询

我试图通过节点asynchronous运行一些MongoDB查询。 但他们仍然需要时间来运行..数据库是索引和完全优化。 有没有办法通过我可以通过mongodbpipe理提高查询的速度时间…或者像增加其性能分配更多的内存。

当我在控制台上看到查询一个一个地运行。 有些花费太长时间…导致没有反应..

2015-12-29T10:31:48.958-0800 I COMMAND [conn63] command consumers.$cmd command: count { count: "consumer1s", query: { ZIP: 37089, $or: [ { ADULTS_F_18_24: "Y" }, { ADULTS_F_24_35: "Y" } ] } } planSummary: IXSCAN { ZIP: 1.0, GENDER: 1.0 } keyUpdates:0 writeConflicts:0 numYields:1 reslen:44 locks:{ Global: { acquireCount: { r: 4 } }, MMAPV1Journal: { acquireCount: { r: 4 } }, Database: { acquireCount: { r: 2 } }, Collection: { acquireCount: { R: 2 }, acquireWaitCount: { R: 2 }, timeAcquiringMicros: { R: 54270 } } } 146ms 2015-12-29T10:31:54.925-0800 I COMMAND [conn62] command consumers.$cmd command: count { count: "consumer1s", query: { ZIP: 37024, $or: [ { ADULTS_F_18_24: "Y" }, { ADULTS_F_24_35: "Y" } ] } } planSummary: IXSCAN { ZIP: 1.0, GENDER: 1.0 } keyUpdates:0 writeConflicts:0 numYields:88 reslen:44 locks:{ Global: { acquireCount: { r: 178 } }, MMAPV1Journal: { acquireCount: { r: 172 } }, Database: { acquireCount: { r: 89 } }, Collection: { acquireCount: { R: 89 }, acquireWaitCount: { R: 83 }, timeAcquiringMicros: { R: 1654781 } } } 6114ms 

嗨,请看日志了解我的问题… 2个查询以下相同的计划..有很大的执行时间差…请告诉我的原因,以及如何解决它

以下信息必须方便。 我正在使用Macintosh系统上的这个应用程序。 OSX优胜美地10.10.2处理器3.2Ghz英特尔酷睿i5。 内存是8GB 1600MHz的DDR3。 任何build议如何我可以分配更多的虚拟内存的MongoDB

正如@Martin所说,你需要configuration文件。 使用类似cursor.explain的东西来确保查询使用索引并找出薄弱点。 使用你的系统有的任何资源监视器(比如Linux上的top / htop)来查看它是否内存不足或者是CPU限制的。

“查询是一个一个地运行” – 我假设你没有使用async.series或类似的,这是顺序的。