先判断是否已经存在,再进行操作。
'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
const {action,data} = event
const now = Date.now()
switch (action) {
case 'createzj':
const docList = await db.collection('unicloud').where({uzid:data.uzid,time:'2024'}).limit(1).get()
if (docList.data[0]) {
return await db.collection('unicloud').doc(docList.data[0]._id).update({'资产': db.command.inc(data.zjcardyue)})
} else {
return await db.collection('unicloud').add({uzid:data.uzid,time:'2024','负债':0.00,'资产':data.zjcardyue})
}
break;
default:
return 'no have action'
break;
}
};
改进了一下:
'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
const {action,data} = event
const now = Date.now()
switch (action) {
case 'createzj':
const docList = await db.collection('unicloud').where({uzid:data.uzid,time:'2024'}).limit(1).get()
if (!docList.data[0]) {
let unires = db.collection('unicloud').add({uzid:data.uzid,time:'2024','负债':0.00,'资产':0.00})
}
return await db.collection('unicloud').doc(docList.data[0]._id).update({'负债': db.command.inc(-data.zjcardyue),'资产': db.command.inc(data.zjcardyue)})
break;
default:
return 'no have action'
break;
}
};
改进后,返回值就固定了,方便做返回处理。