收藏
回答

为什么db.collection().where().update()修改原记录后还添加了一条新的?

是这样的,我先查一下,如果存在,则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了?


回答关注问题邀请回答
收藏

3 个回答

  • 神经蛙
    神经蛙
    2023-06-16
     let r= await db.collection(collection)
                    .where(where)
                    .get()
                    .then(res => {
                        return res
                    })
    
    2023-06-16
    有用
    回复
  • 人工智什么
    人工智什么
    2023-06-16

    之前的问题都没人回答,问题放上去几天,最后也都是自己解决的。但没想到,今天竟然还有两个回复,太感动了。

    所以我决定来回答一下,我是怎么解决的。

    因为get、update和add放在程序里,虽然是写的时候get在update前面,然后update在add前面,但实际上程序并行执行了。执行get的时候,同时去执行了下面的add

    所以用promise同步语法,做了一个先后顺序,保证先查后更新,最后再add


    2023-06-16
    有用
    回复
  • Mr.luo
    Mr.luo
    2023-06-16

    。。。

    2023-06-16
    有用
    回复
登录 后发表内容