如何在Model.find Sailsjs中循环

祝你有个好日子,有人可以build议我使用哪种asynchronous函数吗?在我的情况下,我需要输出每个组的第一个成员。 ***注意这只是我的程序stream程的一个例子。

/* Grouplist groupmember Id | name id | name | group 1 | group1 1 | John | 1 2 | group2 2 | James | 1 3 | group3 3 | Paul | 3 4 | Angel | 2 5 | Anne | 2 6 | Jane | 3 looking for output like this id | name | group 1 | John | 1 4 | Angel | 2 3 | Paul | 3 */ var name = []; Grouplist.find( function(err, grouplist){ for(var x=0;x<=grouplist.length-1; x++){ groupmember.find({id:grouplist[x].id}).limit(1).exec( function callBack(err,results){ if(err) console.log(err); name[x] = results.name; }) } }) 

您可以使用mongodb聚合运算符在一个查询中得到结果:

 groupmember.aggregate( [ { $group: { _id: "$group", //grouping key member: { $first: "$$CURRENT" } //return the first matched document } }, { $project : //project the document to top-level { _id: "$member._id", name: "$member.name", group: "$member.group" } } ], function(err, members){ console.log(members) } )