如何在node.js中使用for循环获取多个用户';s来自mongodb的电子邮件ID
请帮助我,因为我是node.js和mongodb的新手。 我需要一个帮助mongodb和node.js,因为这样做我并不感到困惑 我尝试从mongodb从用户ID(userID是唯一的)获取阵列中的多个用户emailID,但是我只得到一个值 我的代码如何在node.js中使用for循环获取多个用户';s来自mongodb的电子邮件ID,node.js,mongodb,Node.js,Mongodb,请帮助我,因为我是node.js和mongodb的新手。 我需要一个帮助mongodb和node.js,因为这样做我并不感到困惑 我尝试从mongodb从用户ID(userID是唯一的)获取阵列中的多个用户emailID,但是我只得到一个值 我的代码 let output = {}; console.log('') let Data = req.body; //array structure of users and payinvoiceID let VZID = Data.use
let output = {};
console.log('')
let Data = req.body;
//array structure of users and payinvoiceID
let VZID = Data.username;
let PARTICIPANTPAYMENTINFOS2 = Data.PARTICIPANTPAYMENTINFOS;
console.log('PARTICIPANTPAYMENTINFOS2', PARTICIPANTPAYMENTINFOS2);
console.log('Data', Data);
console.log('Data', Data.PARTICIPANTPAYMENTINFOS[0].ID);
var pARTICIPANTPAYMENTINFOs = [];
for(let i = 0; i < Data.PARTICIPANTPAYMENTINFOS.length; i++){
MongoClient.connect(config.Database.DFARM.connectString, function (err, client) {
console.log(err)
if (err) {
let connError = new Error(500, "Error connecting to DFARM database", err);
res.status(connError.status).json(connError);
}
else {
console.log('Data', Data.PARTICIPANTPAYMENTINFOS[0].ID);
let query = Data.PARTICIPANTPAYMENTINFOS[i].ID
console.log('query', query);
client.db(config.Database.DFARM.dbName).collection("User").find(query).toArray(function (err, docs) {
if (err) {
let connError = new Error(500, "Error while getting produce", err);
res.status(connError.status).json(connError);
}
else {
console.log('Docs', docs);
if(docs.length>0){
console.log('EMAIL ID',docs[i].EMAIL);
let EmailId = docs[i].EMAIL;
console.log('EmailId', EmailId);
// useremail.push(EmailId);
pARTICIPANTPAYMENTINFOs.push(EmailId);
// pARTICIPANTPAYMENTINFOs.push(Data.PARTICIPANTPAYMENTINFOS[i].PAYABLEAMOUNT);
}
}
});
}
//client.close();
});
}
console.log('PARTICIPANTPAYMENTINFOS', PARTICIPANTPAYMENTINFOS);
let output={};
console.log(“”)
让Data=req.body;
//用户和payinvoiceID的数组结构
让VZID=Data.username;
让PARTICIPANTPAYMENTINFOS2=Data.PARTICIPANTPAYMENTINFOS;
log('PARTICIPANTPAYMENTINFOS2',PARTICIPANTPAYMENTINFOS2);
console.log('Data',Data);
console.log('Data',Data.PARTICIPANTPAYMENTINFOS[0].ID);
var pARTICIPANTPAYMENTINFOs=[];
for(设i=0;i0){
console.log('EMAIL ID',docs[i].EMAIL);
让EmailId=docs[i].EMAIL;
console.log('EmailId',EmailId);
//useremail.push(EmailId);
pARTICIPANTPAYMENTINFOs.push(EmailId);
//push(Data.pARTICIPANTPAYMENTINFOs[i].payablemount);
}
}
});
}
//client.close();
});
}
log('PARTICIPANTPAYMENTINFOS',PARTICIPANTPAYMENTINFOS);
我只收到一个电子邮件ID,即电子邮件IDpc@gmail.com.
任何帮助对我都是非常有用的
感谢预付款。也请注意。除了学习如何处理异步操作的一般方面外,您真正应该学习的另一件事是数据库连接只进行一次,而且绝大多数情况下不会在循环中进行。thanks@NeilLunn这一评论解决了我面临的另一个问题