经查询得知,小程序目前无法批量插入多条数据。
目前困扰我的问题,我写的代码,在循环插入的时候,循环1次后就结束了....
exports.main = async(event, context) => { try { let { taskname, userInfo } = event; //名称先查重,通过后再入库 return taskCollection.where({ "taskName" : taskname }).count().then(res => { if (res.total == 0) { return taskCollection.add({ data: { "_openid" : userInfo.openId, "taskName" : taskname, "creatTime" : db.serverDate() } }).then(res => { //获取新建任务的taskid return taskCollection.field({ _id: true }).where({ taskName: taskname }).get().then(res => { let taskid = res.data[0]._id; //从stu表中,获取stuid, //然后将taskid、stuid、status、creattime记录到数据库中 return stuinfoCollection.get().then(res => { //sutres为then的入参res,单独拿出来,用于循环下面的新增获取stu_id let stures = res; //stuCount为从stu表中获取到数据的个数 let stuCount = stures.data.length;
for (let i = 0; i < stuCount; i++) { return detailColletction.add({ data: { "task_id" : taskid, "stu_id" : stures.data[i]._id, "status" : 0, "creatTime" : null } }) } }) }) //保存成功的标志 return "0" ; }). catch (res => { //保存失败的标志 return res; }) } else { //重名的标志 return "1" } }); } catch (e) { console.error(e) } } |
希望大佬们帮我这个新手,看下问题,顺便提下建议。
怎么感觉我写的很复杂呢。。。