是这样的,我先查一下,如果存在,则update,如果不存在,则add
scoreDB.where({
_openid: openid
}).get().then(res=>{
console.log("查到了"+res.data[0]._id)//打印返回结果
//更新
scoreDB.where({
_id: res.data[0]._id
}).update({
data:{
highScore:_highScore
}
}).then(res=>{
debugger
console.log("更新成功了"+res.data)//打印返回结果
}).catch(err=>{
console.log("更新失败了"+err)//打印错误信息
})
}).catch(err=>{
console.log("查不到"+err)//打印错误信息
})
我debug看了,update完了以后,就生成了两条记录。
除了_id,其他内容一模一样,也就是所,update他还add了?
let r= await db.collection(collection) .where(where) .get() .then(res => { return res })
之前的问题都没人回答,问题放上去几天,最后也都是自己解决的。但没想到,今天竟然还有两个回复,太感动了。
所以我决定来回答一下,我是怎么解决的。
因为get、update和add放在程序里,虽然是写的时候get在update前面,然后update在add前面,但实际上程序并行执行了。执行get的时候,同时去执行了下面的add
所以用promise同步语法,做了一个先后顺序,保证先查后更新,最后再add
。。。