- 云开发数据库,如何清除相同业务 id 下历史的数据记录?
请问一下对于小程序云开发数据库记录去重有好的思路吗? 比如有一批订单数据导入通过 csv 的方式导入的,里面有一些数据相比于之前的数据是最新的,订单Id 是唯一的,但数据库里存储了同一个订单的好几份数据,想把之前的历史数据清除掉,不知道应该怎么样处理比较好呢? 主要是导入的 Upsert 如果记录存在则更新,只能针对 _id 作为唯一识别字段,要是能够根据自定义的业务 id 来进行导入更新就好了。如果记录中存在业务id,就进行数据更新,否则插入新记录。
2020-12-16 - 云开发可控制台->导入数据库->冲突处理模式,不太理解 Upsert 含义,怎么理解记录存在则更新?
拿数据做了一下导入数据库功能的测试,目前 "导入数据库" 中的 "冲突处理模式" Upsert 有含糊的地方,不太明白"Upsert:如果记录存在则更新,否则插入记录",怎么算 "如果记录存在"??? 现在的冲入处理模式的处理方式应该是以 "_id" 作为一个唯一标识来判断记录是否存在,但这样子的功能还不太够,"_id" 这个字段只有导出后再导入的时候才会有这个字段。 需求场景:我有一批订单数据需要往云开发的数据库里面进行导入,第一次我进行导入新增了所有的记录没有问题,隔了一段时间后,订单数据发生了改变,新的这一批订单数据当中有之前导入的部分数据,也有新的订单数据。此时导入就会存在问题,无论是按照 "Insert",还是按照 "Upsert"来导入都会有问题,之前导入的部分数据是没有 "_id" 这个字段的,所以按照 "Upsert" 导入也是新增所有的数据。 但在这样的需求场景下导入是由问题的,一个订单数据被新增了两条数据。 希望能够提供的方案: 在数据库导入,冲突处理模式 的 "Upsert" 可以按照自定义的业务字段来进行导入,"Upsert" 导入时,如果记录当中存在自定义字段的"业务编号",则进行更新,否则插入新记录。 这一点对于数据导入数据库来说很重要,要根据自己业务编号(保证唯一)来进行 Upsert。
2020-12-14