我们读取一次云数据库,数据库会记录,但是当第二次读取时,会有重复的数据(云数据库并不会处理这些重复的数据),所以发送前需要对数据进行查重,去掉重复的部分。
const list = await playlistCollection.get()
上面代码指先读取云数据库所含信息,并赋值给list
const playlist = await rp(URL).then((res) => {
return JSON.parse(res).result
})
上面代码指读取服务器端的数据,并赋值给playlist
PS:playlist与list可能会有重复的部分
去重操作:
const newData = []
for(let i = 0, len1 = playlist.length; i < len1 ; i++){
let flag = true
for(let j = 0, len2 = list.data.length; j < len2 ; j++){
if(playlist[i].id === list.data[j].id){
flag = false
break
}
}
if(flag){
newData.push(playlist[i])
}
}
创建一个额外的数组newData,比较playlist与list(需要找到关键字,此选择ID),若与已知数据(list)重复则不考虑,否则上传到云数据库。
for(let i=0, len = newData.length; i < len ; i++){
await playlistCollection.add({
data:{
...newData[i],
createTime: db.serverDate(),
}
}).then((res) => {
console.log('插入成功')
}).catch((err) => {
console.error('插入失败')
})
}
return newData.length
以上为上传云数据库的代码。