还真的是这样! 佩服作者能够发现是未加入bind:enter的结果
page-container标签不加bind:enter方法进入没有动画page-container标签不加bind:enter方法进入没有动画
2021-08-01上面代码中,queryCount和queryList是完全一样的,只不过 一个是queryCount.count('total').end(), 一个是queryList.skip(pager.Offset).limit(pager.Limit).end(), 我尝试过用queryList = queryCount来简化代码,可是发现queryCount.count('total').end()之后,queryList就不能按预期那样读取分页数据了。 请问像这种分页读取需要同时返回文档总数的,一般是如何写比较简洁的代码的? 谢谢!
lookup联表查询,需要分页查询时,如何用简洁的代码获取文档总数count?在分页查询中,一般是需要返回符合条件的文档总数的,下面的代码是先获取文档总数count,然后获取0-20条数据。这两部分的代码高度重复,如果查询条件复杂的话,更是十分冗长。 // 文档总数量count读取 let queryCount = db.collection('cats-order').aggregate() .match(orderMatch) .project({ shopId: true, customerId: true, status: true, services: true, createTime: true, }) .lookup({ from: 'cats-shop', let : { shopId: '$shopId' }, pipeline: $.pipeline() .match(_.expr($.and([ $.eq(['$_id', '$$shopId']) ]))) .project({ _id: false, shopTitle: '$title' }) .done(), as: 'shops' }) .replaceRoot({ newRoot: $.mergeObjects([$.arrayElemAt(['$shops', 0]), '$$ROOT']) }) .project({ shops: false }) .lookup({ from: 'cats-customer', let: { customerId: '$customerId' }, pipeline: $.pipeline() .match(_.expr($.and([ $.eq(['$_id', '$$customerId']) ]))).project({ _id: false, customerTitle: '$title', customerPhone: '$phone', customerLevel: '$level' }).done(), as: 'customers' }) .replaceRoot({ newRoot: $.mergeObjects([$.arrayElemAt(['$customers', 0]), '$$ROOT']) }) .project({ customers: false }) if (searchWord) { queryCount = queryCount.match(_.or([{ customerTitle: new RegExp(searchWord, 'i') }, { customerPhone: new RegExp(searchWord, 'i') }])) } let countRes = await queryCount.count('total').end() pager.Total = countRes.list[0].total // 分页数据读取 let queryList = db.collection('cats-order').aggregate() .match(orderMatch) .project({ shopId: true, customerId: true, status: true, services: true, createTime: true, }) .lookup({ from: 'cats-department', let : { shopId: '$shopId' }, pipeline: $.pipeline() .match(_.expr($.and([ $.eq(['$_id', '$$shopId']) ]))) .project({ _id: false, shopTitle: '$title' }) .done(), as: 'shops' }) .replaceRoot({ newRoot: $.mergeObjects([$.arrayElemAt(['$shops', 0]), '$$ROOT']) }) .project({ shops: false }) .lookup({ from: 'cats-customer', let: { customerId: '$customerId' }, pipeline: $.pipeline() .match(_.expr($.and([ $.eq(['$_id', '$$customerId']) ]))).project({ _id: false, customerTitle: '$title', customerPhone: '$phone', customerLevel: '$level' }).done(), as: 'customers' }) .replaceRoot({ newRoot: $.mergeObjects([$.arrayElemAt(['$customers', 0]), '$$ROOT']) }) .project({ customers: false }) if (searchWord) { queryList = queryList.match(_.or([{ customerTitle: new RegExp(searchWord, 'i') }, { customerPhone: new RegExp(searchWord, 'i') }])) } let listRes = await queryList.sort({createTime: -1}).skip(pager.Offset).limit(pager.Limit).end() return { data: listRes.list, pager, // 返回{ data, pager: {Offset, Limit, Total }}这样的数据结构,是为了和云数据库的http读取方式统一 errMsg: 'collection.aggregate:ok' }
2021-06-29代码很简单,而且在手机端和devtool都正常运行 this.ordersWatcher = db.collection('cats-order').where({ shopId: shop._id }).watch({ onChange: (snapshot) => { }, onError: (err) => { console.error('the orders watch closed because of error', err) } })
pc端小程序使用云数据库watch出错出问题的是pc端小程序,在手机和开发工具上都没问题 出错信息: the orders watch closed because of error <Error: errCode: -402002 realtime listener init watch fail | errMsg: init watch fail Error: wsclient.send timedout history states: UNINIT-(loginStart)->INIT_LOGGING_IN-(loginSuccess)->INIT_LOGGED_IN-(initWatchStart)->INIT_WATCH_PENDING-(initWatchFail)->INIT_WATCH_FAIL-(loginStart)->INIT_LOGGING_IN-(loginSuccess)->INIT_LOGGED_IN-(initWatchStart)->INIT_WATCH_PENDING-(initWatchFail)->INIT_WATCH_FAIL-(loginStart)->INIT_LOGGING_IN-(loginSuccess)->INIT_LOGGED_IN-(initWatchStart)->INIT_WATCH_PENDING-(initWatchFail)->INIT_WATCH_FAIL-(close)->CLOSED>
2021-06-04原生代码,没有任何框架
onShareTimeline自定义标题title无效,参数query无法传递?在最新开发工具1.03.2012120,基础库2.12.0下,onShareTimeline自定义标题无效,参数query也无法传统? 代码就是这么简单,在Android手机上也是一样 onShareTimeline: async function() { return { title: '1234', query: 'a=1&b=2' } }
2021-01-10感谢Starry
video组件在开始播放前能不能不显示时长信息?video组件在开始播放前,会显示一个白色三角形和这个视频时长的文本,能不能关闭这个文本的显示?[图片]
2021-01-10正好用到这一块
小程序绘制canvas可以像html2canvas一样截取整块区域的图?小程序绘制canvas可以像html2canvas一样截取整块区域的图了吗?以前是不可以的,需要手动画图。调位置。html2canvas可以直接截取整块区域的图或者文案直接放置到canvas里。 现在支持吗??????
2021-01-10来来来,你告诉我,哪个是正确答案?!我查看了全部帖子,那么多人在问,官方怎么就这么无视呢!
当前系统代理不是安全代理,是否信任?- 当前 Bug 的表现(可附上截图) 不断提示 “当前系统代理不是安全代理,是否信任?“ - 预期表现 - 复现路径 - 提供一个最简复现 Demo
2018-10-25