动态的SQL语句在云函数中如何使用?
这是我的云数据库中一个集合的数据
{ _id: 'west01', name: '西学楼1号', roomList: [ { room:'101', bedList:[ {bed:'A',isChoose:0}, {bed:'B',isChoose:0}, {bed:'C',isChoose:0}, {bed:'D',isChoose:1}, ] }, { room:'102', bedList:[ {bed:'A',isChoose:0}, {bed:'B',isChoose:0}, {bed:'C',isChoose:1}, {bed:'D',isChoose:1}, ] }, { room:'103', bedList:[ {bed:'A',isChoose:0}, {bed:'B',isChoose:0}, {bed:'C',isChoose:0}, {bed:'D',isChoose:0}, ] } ], }, { _id: 'west02', name: '西学楼2号', roomList: [ { room:'201', bedList:[ {bed:'A',isChoose:0}, {bed:'B',isChoose:0}, {bed:'C',isChoose:0}, {bed:'D',isChoose:1}, ] }, { room:'202', bedList:[ {bed:'A',isChoose:1}, {bed:'B',isChoose:0}, {bed:'C',isChoose:1}, {bed:'D',isChoose:0}, ] } ], } |
想通过小程序来选择宿舍,通过云函数来将某个被选定的床位的“isChoose”字段设置为1。
例如,我选择了“西学楼1号-101房-A床”,那么我就需要把对应的床位的“isChoose”字段设置为1
我的json数据是多层的,于是我在云开发控制台的模板中尝试修改,我的方案是,通过下面的代码去修改“isChoose”字段的值
db.collection('dormitories') .where({ name: '西学楼1号' }) .update({ data: { 'roomList.0.bedList.0.isChoose': 1 }, }) |
但是我也面临着一个问题,选择其他宿舍的话,那‘roomList.0.bedList.0.isChoose’里的两个“0”(房间号的index和床号的index)就是动态的,而我也可以获得这两个index值,可是eval()在小程序中用不了,于是我也不能动态地改变这个SQL语句。
各位大佬有解决方案,或者其他的实现方案么?请不吝赐教,谢谢
