我一直在研究nodeJS + MongoDB,使用Express和Mongoose框架几个月,我想问你们在以下情况下发生了什么:
(fmap (*) 3)
我最好的猜测是有一个主线程在elems上循环,然后不同的线程在Model2上参与每个查询,但我不太确定。
这是对的吗?而且,这是一个很好的解决方案吗?如果没有,你会如何编写这样的情况,你需要从Model1获得的每个元素中的信息来从Model2获取元素,并执行你正在寻找的实际功能?
我知道我可以详细说明一个更复杂的查询,我可以得到elems中每个'el'的所有元素都会产生,但我宁愿不这样做,因为在那种情况下我会担心记忆费用。
另外,我一直在考虑改变数据模型,但我已经过去了,我很有信心,我认为这是我的应用程序的最佳解决方案。
谢谢!
答案 0 :(得分:0)
这是最佳解决方案:
Model1.find({}, function (err, elems) {
if (err) {
console.log('ERROR');
} else {
loopAllElements(0,elems);
}
});
function loopAllElements(startIndex,elems){
if (startIndex==elems.length) {
return "success";
}else{
Model2.find({[QUERY RELATED WITH FIELDS IN elems[startIndex] ]}, function (err, elems2) {
if (err) {
console.log('ERROR');
return "error";
} else {
//DO STAFF.
loopAllElements(startIndex+1, elems);
}
});
}
}