我想将其他参数传递给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
方法。
我该怎么办?
答案 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);
}
});
}