微信小程序云数据库开发文档只有一些简单的方法,并没有写到修改数据库中数组指定项的功能。今天遇到了这个问题,便百度这个问题,最后在 csdn 上找到了写法。
数据结构
"vote": {
"title": "小黑的投票测试",
"voter": [{
"avatarUrl": "https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLseRrhDjNxfw9mibvRpRPxTuaia51J3xBd8Kt13k5CX5iatcAibIdVcZK4UZBT7o4z3DgeTQzaJexMSA/132",
"nickName": "小黑",
"openid": "o2ggm0WOLsTN1zcicw_U1z12t7ak",
"options": [2.0]
}],
"creatTime": "2021-12-15 18:21:36",
"duration": 60.0,
"founder": "小黑",
"multiple": false,
"options": [{
"option": "选项一",
"selected": false,
"vote_number": 1.0
}, {
"option": "选项二",
"selected": false,
"vote_number": 1.0
}, {
"option": "选项三",
"selected": false,
"vote_number": 0.0
}, {
"option": "选项四",
"vote_number": 0.0
}],
"secret": false
}
需求
修改数组中 vote.options[0]
中的 vote_number
值,使其自增一。
写法
db.collection('vote_list').doc(_id).update({
data: {
['vote.options.' + (0)]: {
vote_number: _.inc(1)
}
},
success: function (res) {
console.log(res)
}
})
其中 ['vote.options.' + (0)]
指向了 vote.options[0]