请教mongoose查询中回调函数怎样能拿到查询参数的值?
发布于 11 年前 作者 johnsmith0602 4316 次浏览 最后一次编辑是 8 年前

我需要在一个for循环中进行数据库查询,如果没有匹配把对应的index存进一个数组。

for ( var index = 0; index < 100; index++) {
    mongooseModel.findOne({ id: index }, function (err, model) {
        if (!model) {
            array.push(index);
        }
    });
}

由于mongoose的回调函数是异步的,我这么写存的index值是有问题的。有什么办法能把查询参数传给回调函数呢?

1 回复

试一下async模块:https://github.com/caolan/async

<pre><code> var list = [0…100]; async.map(list, function (callback) { mongooseModel.findOne({ id: index }, callback); }, function (err, results) { //results.filter(function (item) {return item;});//如果有需要过滤空值的话,当然也可以用async.filter //results就是你想要的 }); </pre></code>

回到顶部