Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoDB query.then()运行次数过多_Javascript_Mongodb_Mongoose_Promise - Fatal编程技术网

Javascript MongoDB query.then()运行次数过多

Javascript MongoDB query.then()运行次数过多,javascript,mongodb,mongoose,promise,Javascript,Mongodb,Mongoose,Promise,我使用CronJob运行一个函数,该函数每10秒包含一个mongoose/MongoDB查询。下面是函数和作业: var runFunction = function (){ console.log("At run function, program uses "+ process.memoryUsage().heapUsed+" bytes of Heap."); var users = require('./models/user'); users.find({'l

我使用CronJob运行一个函数,该函数每10秒包含一个mongoose/MongoDB查询。下面是函数和作业:

var runFunction = function  (){
    console.log("At run function, program uses "+ process.memoryUsage().heapUsed+" bytes of Heap.");
    var users = require('./models/user');
    users.find({'local.isActiveUser': "1"})
    .then(docs => {
        console.log("Looking at docs ");
        console.log(docs.length);
        //do more stuff with docs
    })
}

    new CronJob('*/10 * * * * *', runFunction
    , null, true);
但是,控制台在每次函数运行时打印“查看文档”4-5次,而不是一次。有人能告诉我这是怎么回事吗


我曾尝试在
.find()
.then()
之间添加
.exec()
,但出现了一些Javascript堆内存溢出(
致命错误:堆限制分配附近的无效标记压缩失败-Javascript堆内存不足
),删除.exec()似乎可以解决这个问题。

为了澄清,对于每个“在运行函数时,程序使用…”消息,您会看到4-5次“查看文档”,对吗?您是否尝试过在没有CronJob的情况下直接运行函数?您可以发布实际输出吗?此外,CronJob似乎不是JS的内置对象。您使用的是node cron吗?我无法使用node cron重现问题。