收藏
回答

请问云函数中我怎么通过openid来修改自己的数据呢?总是不成功

框架类型 问题类型 操作系统 工具版本
小游戏 需求 Windows v1.02

我通过云函数创建了一条数据,自动添加了_openid字段,我发现我如果doc的是_id字段,是可以通过update修改数据的,但是我doc了_openid字段,修改完数据不成功,我在社区里看有人说是权限问题,可是我该怎么做才能让集合认为我有权限修改呢,毕竟_id不是唯一的,用户的openid才是吧

return db.collection('Around1').doc(wxContext.OPENID).update({data:{_openid:wxContext.OPENID, score:10}});

其中Around1是我集合的名字,这样不能修改数据吗?求大神指点

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

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-07-03

    _id是唯一的

    doc只能是_id的值

    你想使用_openid进行更新就是用where,如:

    return db.collection('Around1').where({ _openid: wxContext.OPENID }).update({data:{score:10}});
    


    一定要使用doc(_openid的值)的话,除非是你在添加数据的时候_id的是就是_openid的值,如

    db.collection('Around1').add({
      data:{
        _id: wxContext.OPENID,
        xxx: '' //其他字段
        ...
      }
    });
    


    这样你才可以使用

    db.collection('Around1').doc(wxContext.OPENID).update({data:{score:10}});
    


    值得注意的是,_id字段是主键,不能重复

    若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

    2020-07-03
    有用 1
    回复 1
    • 李伟
      李伟
      2020-07-03
      感谢解答
      2020-07-03
      回复
登录 后发表内容
问题标签