unicloud云开发进阶13-as别名limit和getOne过滤

89 阅读1分钟

设置头像

加一个个人中心的按钮,然后给按钮写一个跳转

    <button @click="gouserinfo">个人中心</button>
    
      // 个人中心
      gouserinfo(){
        uni.navigateTo({
          url:"/uni_modules/uni-id-pages/pages/userinfo/userinfo"
        })
      },

image.png

image.png

改别名

<template>
  <view>
    <button @click="goLogin">登陆</button>
    <button @click="logout">退出登陆</button>
    <button @click="gouserinfo">个人中心</button>
    
    <view>
      <uni-list>
      	<uni-list-item v-for="item in listArr" 
        :title="item.title" 
        :note="item.content" 
        :thumb="item.userid[0].user_avatar"
        thumb-size="lg" 
        :rightText="item.userid[0].username"
        ></uni-list-item>
      </uni-list>
    </view>
  </view>
</template>

      getData(){
        // 先查询主表,构建出一个临时表artTemp
        let artTemp = db.collection("cloudDemo").field('title,content,userid').getTemp();
        // 再查询副表uni-id-users表,构建临时表userTemp
        let userTemp = db.collection("uni-id-users").field("_id,username,avatar_file.url as user_avatar,nickname").getTemp()
        
        // 联表查询 主表在前,副表在后
        db.collection(artTemp, userTemp).get().then(res=>{
          console.log(res);
          this.listArr = res.result.data
        })
      },

改了别名后,前端拿到的就是改过的别名 image.png

但是渲染不出来,不知道什么原因,视频中是可以的,报跨域问题 不知道是不是因为视频中用的是阿里云,自己用的腾讯云 image.png

排序 orderBy

下面两种写法一样,根据ID进行降序排列,要用哪个字段排序,就要拿到这个字段才能进行排序

orderBy("_id","desc")orderBy("_id desc")

        // 联表查询 主表在前,副表在后
        db.collection(artTemp, userTemp).orderBy("_id","desc").get().then(res=>{
          console.log(res);
          this.listArr = res.result.data
        })
      },

限制查询条数 limit

查询两条记录

      getData(){
        // 先查询主表,构建出一个临时表artTemp
        let artTemp = db.collection("cloudDemo").field('title,content,userid').getTemp();
        // 再查询副表uni-id-users表,构建临时表userTemp
        let userTemp = db.collection("uni-id-users").field("_id,username,avatar_file,nickname").getTemp()
        
        // 联表查询 主表在前,副表在后
        db.collection(artTemp, userTemp).orderBy("_id","desc").limit(2).get().then(res=>{
          console.log(res);
          this.listArr = res.result.data
        })
      },

image.png

只查询一条记录

一般用来做详情页,只需要一个用户数据 .get({getOne:true})

      getData(){
        // 先查询主表,构建出一个临时表artTemp
        let artTemp = db.collection("cloudDemo").field('title,content,userid').getTemp();
        // 再查询副表uni-id-users表,构建临时表userTemp
        let userTemp = db.collection("uni-id-users").field("_id,username,avatar_file,nickname").getTemp()
        
        // 联表查询 主表在前,副表在后
        db.collection(artTemp, userTemp).orderBy("_id","desc").limit(1).get({getOne:true}).then(res=>{
          console.log(res);
          this.listArr = res.result.data
        })
      },