收藏
回答

云函数中传入数据集合并查询添加修改操作?

在云函数中,传入了一个数据集合,遍历这个数据集合,查询数据库是否存在该数据,如果存在则修改该条数据,如果不存在则新增一条数据,遍历集合的话是异步的话,这几步操作怎么同步,目前代码是这样的,并不成功

目前代码是这样的,改了下,单条是可以的,还是 Promise 这个用的不对,求教,在线等


// 云函数入口文件

const cloud = require('wx-server-sdk')


cloud.init()


const db =cloud.database()


const _=db.command


const result={

  code:'',

  body:''

}


// 云函数入口函数

exports.main = async (event, context) => {

  if(event.datalist!=null && event.datalist.length>0){

    for(i=0; i < event.datalist.length; i++){

      const rst=await db.collection("dailymenu").where({

        datetime:event.datalist[i].datetime

      }).get();

      await Promise.all(rst.data).then(res=>{

        console.log(res)

        if(res.length>0){

          updatemenu(event.datalist[i],res[0]).then(resupdate=>{

            result.code=200;

            result.body=resupdate;

            //resolve(result)

            console.log(result);

          })

        }else{

          addmenu(event.datalist[i]).then(resadd=>{

            result.code=200;

            result.body=resadd;

            //resolve(result)

            console.log(result);

          })

        }

      })

    }

    console.log("end")

  }

}




function addmenu(event){

  console.log("update");

  console.log(event);

  return db.collection('dailymenu').add({

     data:{

       datetime:event.datetime,

       menuinfo:event.menuinfo,

     }

   })

}


function updatemenu(event,data){

  console.log("update");

  console.log(event);

 return db.collection('dailymenu').doc(data._id).update({

   data:{

     menuinfo:event.menuinfo,

   }

 })

}




最后一次编辑于  2022-03-21
回答关注问题邀请回答
收藏
登录 后发表内容