拿数据做了一下导入数据库功能的测试,目前 "导入数据库" 中的 "冲突处理模式" Upsert 有含糊的地方,不太明白"Upsert:如果记录存在则更新,否则插入记录",怎么算 "如果记录存在"???
现在的冲入处理模式的处理方式应该是以 "_id" 作为一个唯一标识来判断记录是否存在,但这样子的功能还不太够,"_id" 这个字段只有导出后再导入的时候才会有这个字段。
需求场景:我有一批订单数据需要往云开发的数据库里面进行导入,第一次我进行导入新增了所有的记录没有问题,隔了一段时间后,订单数据发生了改变,新的这一批订单数据当中有之前导入的部分数据,也有新的订单数据。此时导入就会存在问题,无论是按照 "Insert",还是按照 "Upsert"来导入都会有问题,之前导入的部分数据是没有 "_id" 这个字段的,所以按照 "Upsert" 导入也是新增所有的数据。 但在这样的需求场景下导入是由问题的,一个订单数据被新增了两条数据。
希望能够提供的方案: 在数据库导入,冲突处理模式 的 "Upsert" 可以按照自定义的业务字段来进行导入,"Upsert" 导入时,如果记录当中存在自定义字段的"业务编号",则进行更新,否则插入新记录。
这一点对于数据导入数据库来说很重要,要根据自己业务编号(保证唯一)来进行 Upsert。
您好,目前仅能以_id作为唯一键进行upSert的判断。
您是否可以考虑在原有数据中,将您所依赖的唯一键字段转换为_id,即可进行导入