实现场景:我需要对一个部门的所有职员进行职位变动,我在前端对部分人的职位进行调整后以array的形式返回后台云函数。
我的期许:MySQL有 on duplicate update 用于大量数据上传时对 id 重复的数据进行覆盖更新,对不存在的数据进行添加。但是我使用uniapp暂未发现合适的类似的方式
提问:uniapp的多条数据批量更新方式,是否可以效仿上述期许。
尝试结果:由于仅使用add函数没办法处理重复数据更新导致一直报错:
"transaction error"
10:56:28.334 [本地调试]Error: errCode: InternalServerError | errMsg: Bulk write operation error on server 192.168.146.97:3717. Write errors: [BulkWriteError{index=0, code=11000, message='E11000 duplicate key error ...  
我的代码:
const transaction = await db.startTransaction()
try {  
            //todo  这里需要考虑 别人恶作剧 创建N多的 permissions  
            let ret = await db.collection('safe-box-role')  
                .add(params.data)  
                // .on DUPLICATE KEY UPDATE;  
            await transaction.commit();  
            return res;  
        } catch (e) {  
            await transaction.rollback()  
            console.error(`transaction error`, e);  
            return res_rollback();  
        } 
             
             
             
			 
                                        
                                     
            
2 个回复
要和守约赴约 (作者)
params.data是一个Object 数据对象,正常上传没有重复唯一定位符 _id 数据是可以成功批量添加的
要和守约赴约 (作者)
更新一下,昨天查询了论坛,今年四月有相似问题得到回复只能循环更新,不支持批量更新