配列をループしてから、データベースにデータを書き込みたいと思います。以下のコードは、for ループを使用して非同期ではない方法で行う方法を示しています。私はこれが好ましい方法ではないことを知っています。
for(var x = 0;x < tt.matches.length;x++) //Match each player with a match and a playerId from the tournament tree
{
if(tt.matches[x].p[0] !== -1)
{
var tmId = JSON.stringify(tt.matches[x].id);
Player.update({ _id : grUpd.players[y] },{ tournamentMatchId : tmId, treeId : tt.matches[x].p[0], opponent : tt.matches[x].p[1] },{ safe : true }, function (err) {
if(err)
{
console.log(err);
}
});
y++;
}
if(tt.matches[x].p[0] === -1)
{
byes++;
}
if(tt.matches[x].p[1] !== -1)
{
var tmId = JSON.stringify(tt.matches[x].id);
Player.update({ _id : grUpd.players[y] },{ tournamentMatchId : tmId, treeId : tt.matches[x].p[1], opponent : tt.matches[x].p[0] },{ safe : true }, function (err) {
if(err)
{
console.log(err);
}
});
y++;
}
if(tt.matches[x].p[1] === -1)
{
byes++;
}
}
次に、「従来の方法」で示されている次のことを実行する必要があります。
for(var x = 0;x < plyrs.length;x++)
{
var nextMatch = JSON.stringify(tt.upcoming(plyrs[x].treeId)) ;
Player.update({ _id : plyrs[x]._id },{ tournamentMatchId : nextMatch },{ safe : true }, function (err) {
if(err)
{
console.log(err);
}
});
}