我通过云函数创建了一条数据,自动添加了_openid字段,我发现我如果doc的是_id字段,是可以通过update修改数据的,但是我doc了_openid字段,修改完数据不成功,我在社区里看有人说是权限问题,可是我该怎么做才能让集合认为我有权限修改呢,毕竟_id不是唯一的,用户的openid才是吧
return db.collection('Around1').doc(wxContext.OPENID).update({data:{_openid:wxContext.OPENID, score:10}});
其中Around1是我集合的名字,这样不能修改数据吗?求大神指点
_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字段是主键,不能重复
若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人