收藏
回答

小程序联表查询 结果如何正确显示在屏幕上?

我使用了联表查询,读取出了1个想要的数据,相关代码如代码1所示。然后我借用变量i想要让它显示在屏幕上,相关代码如代码2所示。

但是尽管我已经把读取的数据量降低到了1个,在屏幕上显示的还是i的位置显示的是[object Object],我想知道正确的显示方法是什么呢?

代码2:

  queryData:function(){
    wx.cloud.callFunction({
      name: "connect",
    }).then(res=>{
      console.log(res)
      this.setData({
        i: res
      })
    })

代码1:

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境
const db = cloud.database()
const _ = db.command
const $ = _.aggregate


// 云函数入口函数
exports.main = async (event, context) => {
  return await db.collection('books').aggregate()
  .lookup({
    from:"author", //
    localField: 'authorid', //
    foreignField: 'number', //
    as: 'newlist' 
  })
  .match({
    name: "《小王子》"
  })
  .replaceRoot({
    newRoot: $.mergeObjects([$.arrayElemAt(['$newlist', 0]), '$$ROOT'])
  })
  .project({
    _id:0,
    authorname:1,
  })
  .end()
  // return db.collection("books").aggregate() //
  //         .lookup({
  //           from:"author", //
  //           localField: 'author', //
  //           foreignField: 'number', //
  //           as: 'newlist' //
  //         }).end({
  //           success:function(res){
  //             return res.data.name;
  //           },
  //           fail(error) {
  //             return error;
  //           }
  //         })
}



回答关注问题邀请回答
收藏

4 个回答

  • showms
    showms
    2023-01-29

    结果集的格式是list

    2023-01-29
    有用 1
    回复 5
    • 景霖
      景霖
      2023-01-30
      我不确定是不是单纯的list,因为输出除了list里面我需要的作家名字外,还有很多比如errMsg, requestID 这些其他东西。可以看一下我下面的评论,里面展示了输出结果。
      2023-01-30
      回复
    • showms
      showms
      2023-01-30回复景霖
      wxml上面你是怎么写的
      2023-01-30
      回复
    • 景霖
      景霖
      2023-01-30回复showms
      2023-01-30
      回复
    • showms
      showms
      2023-01-30回复景霖
      改成 <view class = "record" wx:for="{{i.result.list}}" wx:key='id'>{{item}}</view>
      2023-01-30
      回复
    • 景霖
      景霖
      2023-01-30回复showms
      谢谢你的提醒!我稍微修改了一下,后面变成了item.authorname就可以显示了!
      2023-01-30
      回复
  • 景霖
    景霖
    2023-01-30

    console.log(res)的输出结果如图。

    2023-01-30
    有用
    回复
  • 跨商通
    跨商通
    2023-01-30

    目测这一句代码白写了:

    console.log(res)
    


    2023-01-30
    有用
    回复 3
    • showms
      showms
      2023-01-30
      很明显
      2023-01-30
      回复
    • 景霖
      景霖
      2023-01-30回复showms
      (笑cry
      2023-01-30
      回复
    • 跨商通
      跨商通
      2023-01-30回复景霖
      哈,目测你还是不懂怎么写。。。
      2023-01-30
      回复
  • 海明溯人
    海明溯人
    2023-01-30

    首先声明一下list为空数组

    let i=[]

    然后再执行写入i的值

    尝试一下不行再找我

    2023-01-30
    有用
    回复 1
    • 景霖
      景霖
      2023-01-30
      我没特别理解您的意思?我只是加了一行代码let i=[],目前看来没有什么特别大的变化。可以看一下我新发的评论,截图了输出结果的显示。希望能得到您更多的指教!
      2023-01-30
      回复
登录 后发表内容