托管小程序云开发封装数据库操作公共类BaseModel。js
一、数据库操作公共类
将常用的增删改查操作进行封装,这样在调用这些方法的函数的代码更加整洁,结构更清晰。
云函数router目录中新建文件modelsBaseModel。js。
公共BaseModelconstcloudrequire(wxserversdk);cloud。init({自身环境env:cloud。DYNAMICCURRENTENV,traceUser:true,});constdbcloud。database();constdb。command按id查询param{object}model集合名称param{String}id查询idreturn{objectnull}查找结果constfindById(model,fields{},id){returnnewPromise((resolve,reject){db。collection(model)。doc(id)。field(fields)。get()。then((res){resolve(res。data)})。catch((err){reject(err)})})}查询带多条件的param{object}model集合名称param{Object}〔options{}〕查询条件param{Number}〔page〕开始记录数param{Number}〔size〕每页显示的记录数return{objectnull}查找结果constquery(model,fields{},options{},page0,size10,order{name:id,orderBy:asc}){returnnewPromise((resolve,reject){db。collection(model)。where(options)。field(fields)。skip(page)。limit(size)。orderBy(order。name,order。orderBy)。get()。then((res){console。log(res,res)resolve(res。data);})。catch((err){console。log(err)reject(err);});})}新增param{object}model集合名称param{object}params参数return{objectnull}操作结果constadd(model,params){returnnewPromise((resolve,reject){db。collection(model)。add({data:params})。then((res){resolve(res)返回的是添加的记录的idresolve(success);})。catch((err){reject(err);})})}按条件统计记录数param{object}model集合名称param{object}options参数return{objectnull}操作结果constcount(model,options{}){returnnewPromise((resolve,reject){db。collection(model)。where(options)。count()。then((res){console。log(res,res)resolve(res。total);})。catch((err){reject(err);})})}按id编辑param{object}model集合名称param{object}params参数return{objectnull}操作结果constupdate(model,params){returnnewPromise((resolve,reject){db。collection(model)。doc(params。id)。update({data:params})。then((res){resolve(success);})。catch((err){reject(err);})})}按条件编辑param{object}model集合名称param{object}condition参数param{object}params值return{objectnull}操作结果constupdatebywhere(model,condition,params){console。log(condition,condition)console。log(params,params)returnnewPromise((resolve,reject){db。collection(model)。where(condition)。update({data:params})。then((res){resolve(success);})。catch((err){reject(err);})})}按id删除结果param{object}model集合名称param{String}id参数return{objectnull}操作结果constremove(model,id){returnnewPromise((resolve,reject){db。collection(model)。doc(id)。remove()。then((res){resolve(success);})。catch((err){reject(err);})})}按条件删除param{object}model集合名称param{String}condition条件return{objectnull}操作结果constremovebywhere(model,condition){returnnewPromise((resolve,reject){db。collection(model)。where(condition)。remove()。then((res){resolve(success);})。catch((err){reject(err);})})}module。exports{query,findById,add,update,updatebywhere,remove,removebywhere,count}