我使用了联表查询,读取出了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;
// }
// })
}
结果集的格式是list
<view class = "record" wx:for="{{i}}" wx:key='id'>{{item}}</view>
<view class = "record" wx:for="{{i.result.list}}" wx:key='id'>{{item.authorname}}</view>
console.log(res)的输出结果如图。
目测这一句代码白写了:
console.log(res)
首先声明一下list为空数组
let i=[]
然后再执行写入i的值
尝试一下不行再找我