任务 3 云开发数据库保存情感分析数据
任务目的
目前收集到的情感分析数据是直接在控制台打印出来,但没有进行保存。这一步先是在云开发的数据库中创建一个集合,用来保存评论的情感分析数据,然后借助云函数云函数调用数据库的API,将获取到的数据保存到云开发的数据库中,这样情感分析和数据保存的操作均可以在云端实现。保存的数据结果可以直接通过控制台查看,也可以调用数据库API获取。
任务步骤
1.功能预期效果展示
经过这一步的操作,我们希望能够完成如下功能:
新增一条评论,评论内容不再展示在控制台上,而是可以存入云开发的数据库中。
具体展示效果如下:
注:控制台中打印的结果存储在
errMsg
中,是因为当前版本无论操作成功或失败,均使用此对象存储返回的结果,不代表存储数据的操作失败。
为完成上述功能,需要在云函数中调用云开发数据库的API,将获取到的内容存储到数据库中。下面将介绍具体的操作步骤。
2.在数据库中创建集合userComments
完整的操作示意图展示如下:
下面是每一步的具体操作步骤介绍:
- 点击 “云开发” ,进入云开发控制台;
- 点击 “数据库” ,进入数据库界面;
- 点击“+”按钮,输入新建的集合名称,然后点击 “确定” ,即可完成数据库中新集合的创建。
3.在云函数中添加数据到数据库
(1)云函数新增数据示例。
如果希望通过云函数新增数据,需要在云函数中调用数据库API,调用的示例代码如下(伪代码):
const db = cloud.database()
return await db.collection('userComments').add({
data: {
xxx:xxx
}
}).then(res => {
return xxx
})
上面的代码实现的功能,即是在数据库的集合userComments
中新增一条数据,通过return返回执行结果。
接下来只需要在我们的云函数中,按照上面的格式传入情感分析的数据结果,即可实现将情感分析数据添加到数据库的userComments
集合中。
注:关于在云函数中新增数据的详细说明,可以参考腾讯云的官方视频: 云开发进阶-在云函数中新增数据 。
(2)修改index.js
逻辑代码。
在云函数addComment
的index.js
中,添加以下内容:
【修改文件:index.js,所在页面:addComment】
......
cloud.init()
// 上方代码无需修改
// ++++++++++新增内容++++++++++
// 创建database对象
const db = cloud.database()
exports.main = async (event, context) => {
// 调用getResult获取情感分析数据
let result = await getResult(event.val)
// 将获取到的结果添加到集合userComments
return await db.collection('userComments').add({
data: {
comment: event.val,
negative: result.Negative,
positive: result.Positive,
sentiment: result.Sentiment
}
})
}
// ++++++++++新增内容++++++++++
// 下方代码无需修改
function getResult(comment) {
......
}
这一部分的功能,是将用户评论,以及调用情感分析API获取到的数据存储到数据库的userComments
集合中,并将执行结果返回到本地。
4.更新云函数代码
云函数中的代码默认存储在本地,如果希望更新后的代码生效,需要先将其上传到云端。由于先前已经进行了云函数的上传操作,现在只需要进行 “云函数增量上传” 即可。
保存云函数中的代码,右键点击云函数addComment
中的index.js
文件,选择 “云函数增量上传:更新文件” ,等待文件上传成功。操作示意图展示如下:
等待云函数更新成功后,便可以对新的功能进行测试验证。
5.检验运行结果
尝试新增评论,验证云开发控制台中,是否可以成功添加新的数据条目。
如果新的数据添加成功,且数据的字段完整,说明新增分析结果到数据库的操作执行成功。
学员评价