у меня есть две коллекции MongoDB со структурами данных, как коллекции 1. "Taskgroups"Вложенные запросы в MongoDB с nodejs и обещал-Монго
{
"taskgroup" : "M&MS&C_nEmpty",
"arg" : "1", "res" : ["1", "0", "0.1"]
}
и 2. "Результаты" коллекции
{
"taskgroup" : "M&MS&C_nEmpty",
"annotation" : {
"fullDesc" : "result contains M MS C",
"shortDesc" : "veryAwesomeRes",
"colCount" : 4,
"argCol": "kT",
"cols" : ["M", "MS", "C"]
}
}
Мне нужно сделать nodejs с выраженной конечной точкой, которая вернется
{
"taskgroupsResCount" : [
{
"taskgroup": "DEADBEEF",
"resultCount" : 1337
},
{
"taskgroup": "1CED7EA",
"resultCount" : 7331
}
]
}
т. Е. Он shoul получает список «taskgroups» из одной коллекции и подсчитывает количество записей для каждого из них в другой коллекции. я написал код с «обещал-Монго», как это:
var db = pmongo(dbName);
var tgCollection = db.collection(tgCollectionName);
var resCollection = db.collection(resCollectionName);
var resultArray = [];
tgCollection
.find()
.forEach(function(tg){
var taskGname = tg.taskgroup;
console.log(taskGname);
resCollection
.find({"taskgroup" : tg.taskgroup})
.then(function(resArray){ //func1
console.log(resArray.length);
resultArray.push(resArray.length);
});
})
.then(function(){ //func2
console.log(resultArray);
});
, но переменная «taskGname» недоступен из «func1» и «func2» не печатает ничего. Что случилось с моим кодом? Как переписать его лучше? Можно ли сделать это в одном запросе mongodb с агрегацией или другим материалом? Благодарим заранее.