【发布时间】:2018-04-07 09:47:56
【问题描述】:
我有一个 mongodb 查询,我想将结果保存到一个数组中。我还在查询之外定义了一个空数组。
var dietaryResults = [];
for (var key in dietary){
Restaurant.find(
{ $text : { $search : dietary[key] } },
{ score : { $meta: "textScore" } }
).sort({ score : { $meta : 'textScore' } }).exec(function(err, results) {
for (var i in results){
dietaryResults.push(results[i]);
}
console.log(dietaryResults);
});
}
如果我在上面的查询中执行console.log(dietaryResults),我可以看到结果被推送到数组中。但是如果我将console.log(dietaryResults) 放在数组之外(这是我想要的),它会打印一个空字符串。谁能解释这种行为并为此提出解决方案?谢谢。
【问题讨论】:
-
你能解释一下“但是如果我把 console.log(dietaryResults) 放在数组之外”的意思吗?您是指在回调之外还是在嵌套的 for 循环之外?
-
我的意思是在这个
Restaurant.find(之外
标签: javascript arrays mongodb mongoose