让你当初设计数据结构时不考虑周全!哈哈哈。我也绝望过几次,幸好还在项目初期数据量小。
update更新时,如何引用其他字段的值?const totalWeight = 10000; // 数据库中有如下记录: { "_id": "6d9dd8625e0eb4c9012e8b1f7a865b86", "sign_ok": true, "times": 2.0200103e+07, "weight": 0.44591564532418015, "tick": 0 } 现在要更新这条记录,将tick更新为 weight * totalWeight的值,如何做到?
2020-01-04有时候仅仅为了取值我们可以用bindinput来绕开,但现在我希望是用户完成一次完整输入,离开输入框时做一些逻辑,没想到有啥好办法绕开。
input的blur在某些情况下不触发?类似这样的例子,blur之后立即回退页面。 做了一个代码片段,调试器里显示“blur works”,手机上会显示“blur does not work” https://developers.weixin.qq.com/s/tdWZ9FmW7Zdf
2019-12-13楼主解决问题了吗?我也遇到这个问题,头大
请问怎么解决setData让input框输入时会失去焦点?如果在键盘抬起后去setData渲染数据的话,input框就会失去焦点,请问有办法解决吗?
2019-12-10定义一下_: const _ = db.command
_.expr是什么?[图片] 如图所示,这是一个有问题的示。 _没有定义 并没有在文档中找到expr操作符 $eq和$gte 也是有问题的
2019-11-23db.RegExp 不能用在command里面,只能单独使用,所以你这里把w的两个条件拆开来,数据库查两次,这样都写在where里就可以了吧。 第一次查询: [代码]where({[代码][代码] [代码][代码]_openid: wContent.OPENID,[代码][代码]ar: db.RegExp({[代码][代码] [代码][代码]regexp: keyword,[代码][代码] [代码][代码]options: [代码][代码]'i'[代码][代码] [代码][代码]})[代码][代码]})[代码] 第二次查询: [代码]where({[代码][代码] [代码][代码]_openid: wContent.OPENID,[代码][代码]name: db.RegExp({[代码][代码] [代码][代码]regexp: keyword,[代码][代码] [代码][代码]options: [代码][代码]'i'[代码][代码] [代码][代码]})[代码][代码]})[代码] 再自己把两个查询得到的数组拼接起来。 可以看下我之前的帖子参考: https://developers.weixin.qq.com/community/develop/doc/000ca2cfee0c387c9069e27c95b400
请问如果实现多条件云函数查询数据库?我想先查询用户的openid然后再跨字段进行 "或" 操作,所以我用了.where().where()的方式,但是感觉很不规范,请问如何才能优化只有一个where()呢? [代码]let w = [],[代码][代码] [代码][代码]id = {}[代码][代码] [代码][代码]if[代码] [代码](keyword.trim() != [代码][代码]''[代码][代码]) {[代码][代码] [代码][代码]w = [{[代码][代码] [代码][代码]ar: db.RegExp({[代码][代码] [代码][代码]regexp: keyword,[代码][代码] [代码][代码]options: [代码][代码]'i'[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]{[代码][代码] [代码][代码]name: db.RegExp({[代码][代码] [代码][代码]regexp: keyword,[代码][代码] [代码][代码]options: [代码][代码]'i'[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]][代码][代码] [代码][代码]}[代码][代码] [代码][代码]id = {[代码][代码] [代码][代码]_openid: wxContext.OPENID[代码][代码] [代码][代码]}[代码][代码] [代码][代码]//先获取openid 然后再进行条件搜索,条件搜索数组不能为空,所以进行了一个判断[代码][代码] [代码][代码]if[代码] [代码](w.length != 0) {[代码][代码] [代码][代码]ctx.body = await cloud.database().collection([代码][代码]'collectMusiclist'[代码][代码]).where(id).where(_.or(w)).skip(event.start).limit(event.count)[代码][代码] [代码][代码].orderBy([代码][代码]'createTime'[代码][代码], [代码][代码]'desc'[代码][代码])[代码][代码] [代码][代码].get().then(res => {[代码][代码] [代码][代码]return[代码] [代码]res[代码][代码] [代码][代码]})[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]ctx.body = await cloud.database().collection([代码][代码]'collectMusiclist'[代码][代码]).where({[代码][代码] [代码][代码]_openid: wxContext.OPENID[代码][代码] [代码][代码]}).skip(event.start).limit(event.count)[代码][代码] [代码][代码].orderBy([代码][代码]'createTime'[代码][代码], [代码][代码]'desc'[代码][代码])[代码][代码] [代码][代码].get().then(res => {[代码][代码] [代码][代码]return[代码] [代码]res[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码]新手一枚,想请各位大佬解答一下
2019-11-23我触底时往数组增加数据,下拉刷新数据时直接刷新数组。其实用户在下拉刷新时,原来的数据就没什么用了,不如这样简单处理。
下拉刷新,新数据如何插到列表头部请教: 上拉加载没有问题,场景是顶部【下拉加载】 实现长列表下拉刷新,下拉后进行数据的请求; 为了性能优化,数据通过增量插入, 每次setdata通过键插入新数据, 实现二维数组只更新插入新增数据, 避免全量setdata // data update to set _this.setData({ ... [`listPullDown[${page}]`]: res.data }); 这种情况下数据如何将数据插入到list头部呢? 现在的解决方法是在view里通过reverse()将数组反转, 担心数据多了会有性能问题, 请教是否有更优处理方式? 3Q
2019-10-30我这边看到类似问题。在hideTabber之后获取windowHeight,有些Android手机上不正常,iPhonexs没出过问题。
请问怎么获取tabbar高度现在有个需求,在有tabbar的页面(首页),调用wx.hideTabBar()后,再获取windowHeight。问题是,获取到的windowHeight仍然是tabbar隐藏前的高度,所以有没有办法获取tabbar的高度?
2019-10-16什么时候该开发者工具问题解决下?官方
wx.getSystemInfoSync获取的windowHeight不准确- 当前 Bug 的表现(可附上截图) [图片] 页面设置wx.hideTabBar,然后wx.getSystemInfoSync()获取信息不准确。 - 预期表现 一般情况下由于windowHeight是可用高度,减去了TabBar高度,预期正确。但使用hideTarBar隐藏TabBar后,结果应该是不减去TabBar高度的值。 - 复现路径 1.页面设置wx.hideTabBar()。 2. wx.getSystemInfoSync()。 - 提供一个最简复现 Demo onReady () { wx.hideTabBar(); console.log(wx.getSystemInfoSync().windowHeight); }
2019-10-16我刚刚自己测试了下,可以超过20条的,但是能否超过100条不清楚,我数据库里本身还没超过100条数据,不方便验证。
云数据库聚合用group时,有记录数limit 20条,最大100条的限制吗?我理解没有用group时,会有这个限制,用了group时,不会有限制,对吗?
2019-10-14聚合后,如果不加limit,是代表返回全部数据还是限制为最多100条呀?
云数据库 聚合操作 LIMIT错误 且 无法比较时间问题1: 聚合操作时, 指定LIMIT为100时, 返回90条数据, 指定LIMIT为110时,返回100条数据, BUG实锤了 问题2: 聚合操作的GT, GTE, LT, LTE等比较操作无法直接比较时间, 只能将时间转化为字符类型后, 才能比较 [代码] [代码][代码]const result = await db.collection([代码][代码]"DANDAN_NOTE"[代码][代码])[代码] [代码] .aggregate() [代码] [代码] .limit(MAX_LIMIT) [代码][代码] [代码][代码].project({ [代码][代码] [代码][代码]_id: 0, [代码][代码] money: 1,[代码][代码] [代码][代码]isDel: 1, [代码][代码] [代码][代码]openId: 1,[代码][代码] [代码][代码]flow: 1, [代码][代码] [代码][代码]noteDate: 1,[代码][代码] [代码][代码]isTarget: $.and([[代码][代码] [代码][代码]$.gte([$.dateToString({[代码][代码] [代码][代码]date: [代码][代码]'$noteDate'[代码][代码],[代码][代码] [代码][代码]format: [代码][代码]'%Y-%m-%d'[代码][代码],[代码][代码] [代码][代码]timezone: [代码][代码]'Asia/Shanghai'[代码][代码] [代码][代码]}), startDate]),[代码][代码] [代码][代码]$.lte([$.dateToString({[代码][代码] [代码][代码]date: [代码][代码]'$noteDate'[代码][代码],[代码][代码] [代码][代码]format: [代码][代码]'%Y-%m-%d'[代码][代码],[代码][代码] [代码][代码]timezone: [代码][代码]'Asia/Shanghai'[代码][代码] [代码][代码]}), endDate])[代码][代码] [代码][代码]])[代码][代码] [代码][代码]})[代码]
2019-10-09