Javascript Mongodb并行运行数千个查询

Javascript Mongodb并行运行数千个查询,javascript,node.js,mongodb,concurrency,Javascript,Node.js,Mongodb,Concurrency,我们有一个PHP应用程序,它在mongo集合中运行了30k唯一查询,性能良好 foreach ($request->numbers as $number) { $query = [ 'cn' => $ddd, 'prefix_init' => array('$lte' => (int) $mobile), 'prefix_final' => array('$gte' => (int) $mobile)

我们有一个PHP应用程序,它在mongo集合中运行了30k唯一查询,性能良好

foreach ($request->numbers as $number) {
    $query = [
        'cn' => $ddd,
        'prefix_init' => array('$lte' => (int) $mobile),
        'prefix_final' => array('$gte' => (int) $mobile)
    ];

    $result = $cadup_full->findOne($query);
    $results[] = $result;
}
我们在nodejs中转换了该应用程序,并开始出现性能问题,因为PHP中的查询是以同步方式触发的,nodejs循环使所有30k同时运行,从而导致性能下降


我如何利用仍然使用nodejs运行这些查询?

正如JohnnyHK提到的,您可以使用,特别是

我不懂PHP,所以这里是对它在node中的等效语法的伪/粗略猜测

// max number of requests running at once
let concurrencyLimit = 10;

async.mapLimit(numbers, concurrencyLimit, function(number, numberCallback) {

    let query = {
        "cn": ddd,
        "prefix_init": {
            $lte: number
        },
        "prefix_final": {
            $gte: number
        }
    }

    // where numberCallback is function(error, document);
    myCollection.findOne(query, numberCallback);

}, function(error, results) {

    // here is your results array;
    console.log(results);
});

正如JohnnyHK提到的,您可以使用,特别是

我不懂PHP,所以这里是对它在node中的等效语法的伪/粗略猜测

// max number of requests running at once
let concurrencyLimit = 10;

async.mapLimit(numbers, concurrencyLimit, function(number, numberCallback) {

    let query = {
        "cn": ddd,
        "prefix_init": {
            $lte: number
        },
        "prefix_final": {
            $gte: number
        }
    }

    // where numberCallback is function(error, document);
    myCollection.findOne(query, numberCallback);

}, function(error, results) {

    // here is your results array;
    console.log(results);
});

你能补充更多细节吗?mongo版本,使用了存储引擎,并解释了此查询的统计数据转储?请使用异步流控制库来管理它。@JohnnyHK,您能提供一个实现示例吗?t你能补充更多细节吗?mongo版本,使用了存储引擎,并解释了此查询的统计数据转储?请使用异步流控制库来管理它。@JohnnyHK,您能提供一个实现示例吗?泰