我正在尝试将对象推入forEach循环内的一个空数组(它本身在另一个forEach循环内),但是该数组始终返回空...这是我的设置:
我有一个字符串数组和一个空结果数组:
const arrayOfStrings = ["foo", "bar", "baz"]
let results = []
我需要查询我的数据库(带有Mongoose的MongoDB)中的每个字符串,并查看每个字符串返回的文档。然后,我想将每个返回的文档添加到我的结果数组中。例如,如果第一个字符串返回2个文档,则第二个字符串返回0个文档,第三个字符串返回3个文档,results.length = 5
。
arrayOfStrings.forEach(string => {
Model.find(<myquerywithstring>, (err, documents) => {
documents.forEach(document => results.push(document));
});
});
但是,如果我在循环结束时尝试console.log(results)
,则结果为[]
。
这里是否缺少forEach循环或数组的某些属性?还是有另一种更有效的方法来解决这个问题?