- 怎么样把云数据库集合里某一个字段的数据都放到js的变量里呢?
spot: res.data.activitydate 想把集合中activitydate字段的数据 放到变量spot里面 但是控制台显示Setting data field "spot" to undefined is invalid. 如果是res.data[0].activitydate就可以,但是只能获取第一条。 有什么简答的方法可以实现这个目的吗?本人完全是个小白,还望仔细知道一下,谢谢~ // 设置数据库 const db = wx.cloud.database() let that = this Page({ /** * 页面的初始数据 */ data: { dateString: "", activitydetail: [], activity_name: [], spot: [], }, dateChange(e) { console.log("选中日期变了,现在日期是", e.detail.dateString) this.setData({ dateString: e.detail.dateString }) /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { db.collection('activity').get({ success: res => { this.setData({ spot: res.data.activitydate }) console.log('[数据库] [查询spot] 成功:',spot) }, fail: err => { wx.showToast({ icon: 'none', title: '查询记录失败' }) console.error('[数据库] [查询spot] 失败:', err) } }) }, } })
2021-02-13 - 小白想问一下怎么把变量添加到数据库的字段?
最下面的功能可以把 message date和servedate写入数据库 但是author不行,会报错ReferenceError: queryResultname is not defined 有大大能告诉我一下怎么处理吗?? 尝试写了 let queryResultname = "", 直接就写入空值了,但实际上是有数据的 是从云端查询的当前用户的名字 // 设置数据库 const db = wx.cloud.database() const messagedate = JSON.stringify(new Date()+0).replace("\"","").replace("\"","").replace(" GMT+0800 (中国标准时间)0","") let that = this let usermessage = "" let _openid = "" Page({ data:{ user_info:[], messageboard:[], usermessage:"", messagedate:"", queryResultname:"", queryResultmessage: [], }, onLoad: function () { // 从云端获取个人信息 wx.cloud.callFunction({ name: "getopenid", success(res){ // 授权用户的openid let userid = res.result.openid } }) // 查询当前用户名字 db.collection('user_info').where({ _openid: this.data.userid }) .get({ success: res => { this.setData({ queryResultname: res.data[0].name }) console.log('[数据库] [查询记录] 成功: ', res.data[0].name) }, fail: err => { wx.showToast({ icon: 'none', title: '查询记录失败' }) console.error('[数据库] [查询记录] 失败:', err) } }) // 获取留言 db.collection('messageboard').orderBy('servedate','desc').get({ success:res=>{ this.setData({ queryResultmessage: res.data }) console.log('留言获取成功',res.data) },fail:res=>{ console.log('留言获取失败',res) } }) }, gainmessage(e){ usermessage=e.detail.value console.log("获取输入的值",usermessage) }, addmessage:function(){ db.collection("messageboard").add({ data:{ message:usermessage, date:messagedate, servedate:db.serverDate(), author:queryResultname, } }) }, })
2021-02-13 - 小程序如何根据openid查询数据库?
想设计的内容是,根据openid返回数据库用户列表集合中对应的一条信息 但是实际返回了全部的。 自己排查的时候 在let _openid = res.result.openid后面追加了console.log("userid",_openid)之后只显示有我的openid 但是下面db.collection.where.get还是返回了云数据库全部的内容(每条openid都不一样) 试着把where里面的openid:this.data._openid改成具体的一个id就可以返回那个openid的那条内容 应该是this.data._openid 出了问题但我是小白不会改 有大大能帮我看一下吗 // pages/mypage/mypage.js const app = getApp() // 设置数据库 const db = wx.cloud.database() let that = this Page({ /** * 页面的初始数据 */ data: { user_info:[], queryResultname: '', queryResultsex: '', queryResultbirthday: '', queryResultposition: '', queryResultintro: '', queryResulttel: '', }, /** * 生命周期函数--监听页面加载 */ onLoad: function () { // 从云端获取个人信息 wx.cloud.callFunction({ name: "getopenid", success(res){ // 授权用户的openid let _openid = res.result.openid } }) // 查询当前用户所有的 counters db.collection('user_info').where({ openid: this.data._openid }) .get({ success: res => { this.setData({ queryResultname: JSON.stringify(res.data[0].name, null, 0).replace("\"","").replace("\"",""), queryResultsex: JSON.stringify(res.data[0].sex, null, 0).replace("\"","").replace("\"",""), queryResultbirthday: JSON.stringify(res.data[0].birthday, null, 0).replace("\"","").replace("\"",""), queryResultposition: JSON.stringify(res.data[0].position, null, 0).replace("\"","").replace("\"",""), queryResultintro: JSON.stringify(res.data[0].intro, null, 0).replace("\"","").replace("\"",""), queryResulttel: JSON.stringify(res.data[0].tel, null, 0).replace("\"","").replace("\"",""), }) console.log('[数据库] [查询记录] 成功: ', res) }, fail: err => { wx.showToast({ icon: 'none', title: '查询记录失败' }) console.error('[数据库] [查询记录] 失败:', err) } }) },
2021-02-11