1.创建soup-today的数据表(就是确认今天给的数据,不然刷新又给新的,不方便给广告)
{
"bsonType": "object",
"required": [
],
"permission": {
"read": true,
"create": true,
"update": true,
"delete": false
},
"properties": {
"_id": {
"description": "ID,系统自动生成"
},
"user_id": {
"bsonType": "string",
"description": "用户id,参考uni-id-users表"
},
"soup_list": {
"bsonType": "array",
"description": "鸡汤列表",
"title": "鸡汤列表"
},
"number":{
"bsonType": "int",
"description": "获取更多的次数,递减,5到0",
"title": "阅读数",
"defaultValue":5
},
"create_date": {
"bsonType": "timestamp",
"description": "创建时间",
"title": "时间",
"forceDefaultValue": {
"$env": "now"
}
}
},
"version": "0.0.1"
}
2.添加记录,用上面查询获得的data记录到这个表里面,代表用户当天看过的
const currentUser = uniCloud.getCurrentUserInfo().uid
db.collection("soup-today").add({
user_id:currentUser,
soup_list:data
})
3.增加查询效率,添加索引user_id
意义:添加user_id为索引后,后面增加此用户不会新建一个表,而是只能在这里面增加,和表的id差不多(添加的这个叫唯一索引),就是说只能是他
给soup-user-read添加非唯一索引,方便查询
4.然后查询今日数据,如果存在就只给今天的鸡汤了,不存在才执行以前的查询
let {result:{data:todayData=[],errCode=-1}={}} =await db.collection("soup-today").where(`user_id==$cloudEnv_uid`).get()
if(todayData.length){
if(errCode!=0) return showToast("信息有误,重新刷新","none");
listData.value=todayData[0].soup_list;
}else{
以前其他查询
}