将其他参数传递给Mongoose查询

时间:2016-06-25 18:34:45

标签: node.js mongodb

我想将其他参数传递给Mongoose findOne查询。

这是我的伪代码:

for (var i = 0; i < 5; i++) {
    SomeCollection.findOne({name: 'xxx' + i}, function (err, document) {
        if (document) {
            console.log('aaa' + i + document.somefield);  
        }
    });
}  

正如您所看到的,我在i回调中使用findOne变量值,因为它在不同的线程中运行,我想将其传递给findOne方法。

我该怎么办?

1 个答案:

答案 0 :(得分:3)

只要您使用node.js 4.x或更高版本,就可以在var循环中使用let而不是for来有效地为每次迭代创建一个新范围:

for (let i = 0; i < 5; i++) {
    SomeCollection.findOne({name: 'xxx' + i}, function (err, document) {
        if (document) {
            // i will have the same value from the time of the findOne call
            console.log('aaa' + i + document.somefield);  
        }
    });
}