个人案例
链接403,建议弄成代码片段链接
救一救注册和登录页面卡了一天的小白?https://gitee.com/tracker647/problem 感觉就是异步问题,但是不管怎么弄promise和async/await,最后控制台云数据库查询语句总是在最后面,搞了一整晚都想不出为什么。 问题代码发在这了, 程序只用到了云数据库,用的时候换成自己的云环境即可。
2021-03-25放在utils.js里吧
可不可以获取某个页面的函数?我的目的,是多个页面共用一个函数,且这个函数有带request请求 1,有一种办法,是直接将函数写在app.js里面 但是,由于小程序代码包过大,所以,进行了分包,分包的意义,就是加快代码执行速度,所以在主包里面的代码必须小,所以,我那个共用的函数不想写在app.js里面 2,还有一种,是使用组件。。但是我只要调用函数,并不做ui界面,有点大材小用 3,建立util.js文件,然后引用,但是我那个函数有request请求,不适合用这种方法来解决 所以,如果可以直接引用别的页面的js文件的函数 就好了,,不知道可行不? 如果不行,那我就使用原先的方法,把函数放在app.js里面好了
2020-10-29试试吧 async playlisttodb() { const len=this.data.playlist.length for (let i = 0; i < len; i++) { let that=this let arr=this.data.playlist[i] that.setData({ arr:arr, }) await db.collection('playlistdb').add({ data: { arr, createTime: db.serverDate(), } }) } },
(in promise) MiniProgramError errCode: -501007 ?我想把data数据上传到云数据库 错误:VM1378:2 (in promise) MiniProgramError errCode: -501007 invalid parameters | errMsg: [InvalidParameter] Check request parameter fail. Please check your request, but if the problem cannot be solved, contact us. Error: errCode: -501007 invalid parameters | errMsg: [InvalidParameter] Check request parameter fail. Please check your request, but if the problem cannot be solved, contact us. playlist.js: const db = wx.cloud.database() Page({ data: { playlist:[{"_id":"1""playCount":1.4641238e+06,"highQuality":false,"type":0.0,"canDislike":true,"name":"天气转热了,适合听点凉爽的歌。"}, {"_id":"08560c9e5d042a5c0174f1da7aa357aa","highQuality":false,"playCount":622822.6,"id":2.740107647e+09,"name":"「时空潜行","type":0.0}, {"_id":"08560c9e5d042a5c0174f1de21c7e79e","id":2.828842343e+09,"type":0.0,"name":"粤语","canDislike":true}, {"_id":"08560c9e5d042a5d0174f1e67d1bb16f","playCount":7.719329e+06,"highQuality":false,"id":9.17794768e+08,"type":0.0,"name":"翻唱简史","canDislike":true} ] }, playlisttodb() { const len=this.data.playlist.length for (let i = 0; i < len; i++) { let that=this let arr=this.data.playlist[i] that.setData({ arr:arr, }) db.collection('playlistdb').add({ data: { arr, createTime: db.serverDate(), } }) } }, onLoad: function (options) { }, onReady: function () { } } playlist.wxml <view> <button bind:tap="playlisttodb">歌单转入数据库</button> </view>
2020-10-23存为什么类型?int,string
如何在云数据库保存日期类型?前端传json对象调用云函数保存至云数据库,怎么弄都无法保存日期类型,总是存为字符类型,请问一下应该怎么操作 云函数代码示例: return await tb.where({openid}).update({ data: { ...event.payload }}) //event.payload为传入json对象 注:因为写了通用的方法,所以不想写不同的云函数针对日期类型的字段一个个地去写new Date()方法,只想前端一次性传json,云函数里不再做处理.目前想到的办法加前缀标识出日期类型再在云函数里去修改所有该前缀的字段为Date类型,想想这办法也够蠢的,不过真不知道有什么标准的方式去实现
2020-10-09var myDate = await MyFGString(...) 若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人
云函数中可以定义子函数返回值的问题?我在云函数中定义了一个子函数,一切正常,如下图所示返回值也一切正常。我想在主程序中取得myDate的第三项(下图中的“2020-09-13</div”那个)的值,我在return myDate改为return myDate[2],为什么返回的是空值呢? [图片]
2020-09-13登录 小商店助手 点击我的 - 店铺信息 若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人
请问从哪里进去修改商店头像和名字?请问从哪里进去修改商店头像和名字?
2020-09-04名称: kupaya小店 简称: kupaya
小商店名称怎么改?个人注册了,名称改变了,但别人搜一搜没找到。 [图片]
2020-08-31wx.miniProgram.navigateBack({ delta: Number(num) })
web-veiw中调用wx.miniProgram.navigateBack返回问题?wx.miniProgram.navigateBack({ delta:num }) 当num为固定值时可以返回到指定的页面。当num为动态的值时,只能返回上1个页面
2020-08-19const db = cloud.database() const _ = db.command const projects = db.collection("projects") const $ = _.aggregate async function getprojectslist (age,date,subject, _region){ let mseconds = 0, daysel, query, region = Array.isArray(_region) ? _region: [], defMatch = { name:$.neq('') },//默认条件 projectsMatch = [], timeArr = {0:0, 1:-86400000, 2:-259200000, 3:-604800000}, flag1 = !age && !date && !subject && !region.length, flag2 = !age && !date && !subject && region.join('') == '全部全部全部', projectList = [] mseconds = date in timeArr ? timeArr[date] : 0 daysel = db.serverDate({offset:mseconds}) query = projects.aggregate() query = query.match(defMatch) if(flag1 || flag2){ projectList = await query.end() console.log('projectList 1') }else{ //判断至少存在一个筛选条件,把有用的筛选条件放入数组 date && projectsMatch.push($.gte(['$date', daysel])) age && projectsMatch.push($.gt(['$age', age])) subject && projectsMatch.push($.eq(['$subject', subject])) region[0] && projectsMatch.push($.eq(['$province', region[0]])) region[1] && projectsMatch.push($.eq(['$city', region[1]])) region[2] && projectsMatch.push($.eq(['$district', region[2]])) projectList = await query.lookup({ from: "user", localField: "name", foreignField: "userId", as: "uid" }) .replaceRoot({ //把user集合中的age根据userId和name匹配联表查询放入projects集合中 newRoot: $.mergeObjects([ $.arrayElemAt(['$uid', 0]), '$$ROOT' ]) }) .match(_.expr($.and([...projectsMatch]))) .project({ uid: 0 }) .end() console.log('projectList 2=>', projectsMatch) } return projectList } 若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人
aggregate联表筛选?参数格式?数据库集合1:user [{"userId":"zqiang","age":20}, {"userId":"lling","age":27}, {"userId":"wcjing","age":19}, {"userId":"wxia","age":21}, {"userId":"zying","age":18}] 集合2:projects [{"name":"zqiang","subject":"体育","create-date":"Sat Aug 01 2020 13:45:26 GMT+0800 (中国标准时间)","province":"北京市","city":"北京市","district":"海淀区"}, {"name":"lling","subject":"英语","create-date":"Sat Jul 18 2020 16:45:39 GMT+0800 (中国标准时间)","province":"广东省","city":"广州市","district":"天河区"}, {"name":"wcjing","subject":"数学","create-date":"Fri Aug 09 2019 16:50:52 GMT+0800 (中国标准时间)","province":"辽宁省","city":"沈阳市","district":"铁西区"}, {"name":"lling","subject":"美术","create-date":"Sun Aug 02 2020 16:56:41 GMT+0800 (中国标准时间)","province":"上海市","city":"上海市","district":"徐汇区"}, {"name":"wcjing","subject":"英语","create-date":"Tue Jun 23 2020 17:02:03 GMT+0800 (中国标准时间)","province":"江西省","city":"南昌市","district":"东湖区"}, {"name":"zqiang","subject":"英语","create-date":"Thu Jun 18 2020 18:04:06 GMT+0800 (中国标准时间)","province":"福建省","city":"福州市","district":"台江区"}, {"name":"wxia","subject":"英语","create-date":"Sun Jun 07 2020 22:08:08 GMT+0800 (中国标准时间)","province":"广东省","city":"深圳市","district":"南山区"}, {"name":"zying","subject":"英语","create-date":"Tue Jun 23 2020 13:09:03 GMT+0800 (中国标准时间)","province":"北京市","city":"北京市","district":"丰台区"}] 小程序端通过普通picker和region picker传来几个筛选参数:age,subject,date,region(包含region[0],region[1],region[2]) 要求:通过这4个参数查询数据库中的数据,age,subject,date,region传过来的参数等于0,或者region[0],region[1],region[2]三个字符串为“全部”时跳过该筛选条件。若参数有效,则分别筛选>age,=subject,date,=region[0],=region[1],=region[2]的数据(这些条件不会同时并存,需要根据小程序传参判断该筛选条件是否成立) 我的程序: const db = cloud.database() const _ = db.command const projects = db.collection("projects") const $ = _.aggregate async function getprojectslist (age,date,subject,region){ //根据date参数判断create-date是全部?1天内?3天内?7天内? let mseconds = 0 if(date == 0){ mseconds = 0 }else if(date == 1){ mseconds = -86400000 }else if(date == 2){ mseconds = -259200000 }else if(date == 3){ mseconds = -604800000 } let daysel = db.serverDate({offset:mseconds}) //设置查询条件 projectsMatch = [] //查询条件为空,返回所有数据 if((age== 0 && date == 0 && subject == 0 && region == 0) || (age== 0 && date == 0 && subject == 0 && region[0] == "全部" && region[1] == "全部" && region[2] == "全部")){ const projectList = projects.get().then(res =>{ return res }) return projectList }else{//判断至少存在一个筛选条件,把有用的筛选条件放入数组 if(date != 0){ projectsMatch.push($.gte(['$date', daysel])) } if(trade != 0){ projectsMatch.push($.eq(['$subject', subject])) } if(region != 0){ projectsMatch.push($.eq(['$province', region[0]])) } if(region != 0 && region[1] != "全部"){ projectsMatch.push($.eq(['$city', region[1]])) } if(region != 0 && region[2] != "全部"){ projectsMatch.push($.eq(['$district', region[2]])) } const projectList = db.collection('projects').aggregate() .lookup({ from: "user", localField: "name", foreignField: "userId", as: "uid" }) .replaceRoot({//把user集合中的age根据userId和name匹配联表查询放入projects集合中 newRoot: $.mergeObjects([ $.arrayElemAt(['$uid', 0]), '$$ROOT' ]) }) .project({ uid: 0 }) .match(_.expr($.and([ // $.gte(['$age',Number(age)]),//挨个调试过,单独的功能正常,但多个条件组合就只返回最后一个筛选条件的结果 $.gte(['$date',daysel]),//单独反复调试,一直无效 // $.gte(['$subject,subject]),//没有调试过 // $.eq(['$province',region[0]]),//挨个调试过,单独的功能正常,但多个条件组合就只返回最后一个筛选条件的结果 // $.eq(['$city',region[1]]),//挨个调试过,单独的功能正常,但多个条件组合就只返回最后一个筛选条件的结果 // $.eq(['$district',region[2]])//挨个调试过,单独的功能正常,但多个条件组合就只返回最后一个筛选条件的结果 // projectsMatch//单独调试过,把这个条件数组放在里面无效 ]))) .end() .then(res => { return res }) return projectList } } 请大神帮忙看看问题出在哪儿,感激不尽!!!!!
2020-08-18直接查log表就好了吧,还要关联reg表? log表不是有openid吗
请问lookup联表查询中,能否通过条件控制被联的表的输入数量?[图片] 游戏每天都有几千人注册 register表和donateLog表都是生数据,也就是逐条记录 donateLog中每条数据都长这样 [图片] 现在我想获得一段时间内,注册玩家中的捐款玩家的openid,然后干点别的事情 但是报错了,把时间缩到一两天没问题,数据一多就炸了 我在想是不是因为联表的时候,donateLog表是全表输入,导致数据量太大了,大部分都是无效数据 我想让donateLog表也从规定的时间段内截取部分数据,和register进行联表 可以做到吗? 谢谢各位大哥了~
2020-08-17