前后都采用云开发,设计数据库表时,有些数据还是用obj会清晰一些。当数据层级设置到深层的时候,由于没有Mysql或其他数据库基础,问题也就来了,如何修改深层级数据成了个问题。开始上社区找资料。数据集层级字段如下 字段:array --> array[index].array添加obj。云函数代码如下:

const cloud = require('wx-server-sdk')
cloud.init({})
const db = cloud.database();
// 云函数入口函数
exports.main = async (event, context) => {
try {
// 这里的_id是课程的_id
const _ = db.command;
let {classID, _id, progress} = event;
// 构建查询条件拿到索引
// 用索引通配符拿到索引,更新数据。
await db.collection('ClassInfo').where({
_id: _id,
'choicedStudent._openid': cloud.getWXContext().OPENID
}).update({
data: {
'choicedStudent.$.progressSubmit': _.push(progress)
}
});
// 对于层级数据,用_id定位失效报错
await db.collection('StudentInfo').where({
_openid: cloud.getWXContext().OPENID,
'choicedClass.classID': classID
}).update({
data:{
'choicedClass.$.progressSubmit': _.push(progress)
}
});
}catch(err){
throw err
}
}
由于官方给予开发文档过于简单,很多功能没法给新手很好的指引,还得在社区里多逛一逛。在次需求之前,个人以为where只能定位数据记录的行,搭配。
目前无法弄明白代码中的具体意思,$是如何得出的。只能照猫画虎,先满足需求!
本文讲述了在使用云开发时遇到的深层级数据修改问题,特别是面对没有Mysql等传统数据库基础的情况。作者通过社区寻找资料,尝试解决在数据集层级字段中添加对象的问题。在云函数中,利用了wx-server-sdk和数据库更新操作,但对$符号的作用仍感困惑。文章反映了云开发文档的不足,提示新手需要在实践中不断探索。
244

被折叠的 条评论
为什么被折叠?



