node菜鸡求大神教教我如何改这段代码!!!!蟹蟹 蟹蟹
var data = [] for (var index = 0 ; index < catalogss.length ; index ++) { for (let i = 0 ; i < wordsArray.length ; i++ ){ Catalog.aggregate([ {$match: {"catalog": catalogss[index],"books.vocabulary": { $in:[wordsArray[i]] }}}, {"$project": { _id:"$catalog", size:{"$size":"$books.vocabulary"} }} ]).exec((err,docs) => { if (err){ console.err(err) } console.log(docs) data.push(docs[0]) }) } } 这段代码中,执行query的部分是异步的,我还不会用,希望可以得到帮助〜〜 代码.png
8 回复
async function test (catalogss, wordsArray) {
var data = [];
for (var index = 0; index < catalogss.length; index++) {
for (let i = 0; i < wordsArray.length; i++) {
const docs = await Catalog.aggregate([{
$match: {
'catalog': catalogss[index],
'books.vocabulary': {
$in: [wordsArray[i]]
}
}
},
{
'$project': {
_id: '$catalog',
size: {
'$size': '$books.vocabulary'
}
}
}
]).exec();
if (docs && docs.length) {
data.push(docs[0]);
}
}
}
return data;
}
test(catalogss, wordsArray).then(data => {
console.log(data)
});
类似这样子的,试试呢