【四】鸡汤来咯开发学习笔记-74

前端 · 2024-08-24

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差不多(添加的这个叫唯一索引),就是说只能是他
2024-08-24T08:00:11.png

给soup-user-read添加非唯一索引,方便查询
2024-08-24T08:05:23.png

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{
      以前其他查询
}
Theme Jasmine by Kent Liao