前端无法读取云数据库集合中的的所有记录
2019-03-15 18:14:06
微信公开课小程序热门讨论关于「前端无法读取云数据库集合中的的所有记录」的小程序开发问题
补充:前端无法读取云数据库集合中的的所有记录
展开:需求的场景描述(希望解决的问题)您好,我们在读云数据库中某个集合的所有记录(我们的例子集合的记录有60条)时,发现求集合总数的代码段总是在实际循环读取记录(云平台规定每次只能读20条记录)的后面,这样就使得计算读多少次失去了意义;另外发现循环读的时候,skip(0)报错误,代码如下 constdb1=wxclouddatabase() constMAX_LIMIT=20 先取出集合记录总数 db1collection(BSDX3S1D1KZC)count()then(res={ thissetData({ wordnum1:restotal }), consolelog(restotal) }) wordnum=thisdatawordnum1 计算需分几次取 constbatchTimes=Mathceil(wordnumMAX_LIMIT) 读取第一个20条记录 db1collection(BSDX3S1D1KZC)get({ success:res={ resdata包含该记录的数据 consolelog(res) }, fail:err={ cosolelog(err) } }) 循环读取第2~3个20条记录 for(leti=1;i<3;i++){3应该为batchTimes varskipnum=i*MAX_LIMIT db1collection(BSDX3S1D1KZC)skip(skipnum) get({ success:res={ resdata包含该记录的数据 consolelog(res) }, fail:err={ cosolelog(err) } }) }希望提供的能力请问,1怎样才能使得先取出集合记录总数的代码在“读取第一个20条记录”,和“循环读取第2~3个20条记录”的代码之前执行,这样保证循环数batchTimes能够提前算出来 2怎样防止skip(0)出错,使得“读取第一个20条记录”,和“循环读取第2~3个20条记录”的代码能合并在一个循环里即速小程序:可以把计算和下面的操作都放到一个方法里,然后在获取总条数之后调用,db1collection(BSDX3S1D1KZC)skip(0)limit(20)get(),这里的skip不能为0,如果想取前20条,可以直接db1collection(BSDX3S1D1KZC)limit(20)get()这样取就好了,在循环里加个if判断如果i==1的话执行db1collection(BSDX3S1D1KZC)limit(20)get()如果不等于1就执行db1collection(BSDX3S1D1KZC)skip(skipnum)limit(20)get():谢谢您帮助试验db1collection(BSDX3S1D1KZC)skip(0)limit(60)get()then(consolelog)catch(consoleerror)提示:VM1004:1thirdScriptErrorerrCode:401002apiparametererror|errMsg:parameteroffsetoffunctionskipmustbeprovided;atpagesWordTestWordTestpagelifeCycleMethodonLoadfunctionError:errCode:401002apiparametererror|errMsg:parameteroffsetoffunctionskipmustbeprovided atnewt(http:127001:45447appservice__dev__WAServicejs:22:14994) atObjecti[asassertRequiredParam](http:127001:45447appservice__dev__WAServicejs:22:13547) atteskip(http:127001:45447appservice__dev__WAServicejs:21:9208) attonLoad(http:127001:45447appservicepagesWordTestWordTestjs:157:40) att<anonymous(http:127001:45447appservice__dev__WAServicejs:19:13907) at$t(http:127001:45447appservice__dev__WAServicejs:19:30369) atZt(http:127001:45447appservice__dev__WAServicejs:19:31040) atsn(http:127001:45447appservice__dev__WAServicejs:20:469) atFunction<anonymous(http:127001:45447appservice__dev__WAServicejs:20:3006) atL<anonymous(http:127001:45447appservice__dev__WAServicejs:19:1500)如果将skip(0)修改为skip(1),即db1collection(BSDX3S1D1KZC)skip(1)limit(60)get()then(consolelog)catch(consoleerror)读出来的只有20条记录,无法全读出{data:Array(20),errMsg:collectionget:ok}请您再帮助看下,谢谢:db1collection(BSDX3S1D1KZC)skip(0)limit(60)get()一次全部读出来就可以了
更多有关「前端无法读取云数据库集合中的的所有记录」的讨论可以前往微信公开课小程序参与互动哦!
补充:前端无法读取云数据库集合中的的所有记录
展开:需求的场景描述(希望解决的问题)您好,我们在读云数据库中某个集合的所有记录(我们的例子集合的记录有60条)时,发现求集合总数的代码段总是在实际循环读取记录(云平台规定每次只能读20条记录)的后面,这样就使得计算读多少次失去了意义;另外发现循环读的时候,skip(0)报错误,代码如下 constdb1=wxclouddatabase() constMAX_LIMIT=20 先取出集合记录总数 db1collection(BSDX3S1D1KZC)count()then(res={ thissetData({ wordnum1:restotal }), consolelog(restotal) }) wordnum=thisdatawordnum1 计算需分几次取 constbatchTimes=Mathceil(wordnumMAX_LIMIT) 读取第一个20条记录 db1collection(BSDX3S1D1KZC)get({ success:res={ resdata包含该记录的数据 consolelog(res) }, fail:err={ cosolelog(err) } }) 循环读取第2~3个20条记录 for(leti=1;i<3;i++){3应该为batchTimes varskipnum=i*MAX_LIMIT db1collection(BSDX3S1D1KZC)skip(skipnum) get({ success:res={ resdata包含该记录的数据 consolelog(res) }, fail:err={ cosolelog(err) } }) }希望提供的能力请问,1怎样才能使得先取出集合记录总数的代码在“读取第一个20条记录”,和“循环读取第2~3个20条记录”的代码之前执行,这样保证循环数batchTimes能够提前算出来 2怎样防止skip(0)出错,使得“读取第一个20条记录”,和“循环读取第2~3个20条记录”的代码能合并在一个循环里即速小程序:可以把计算和下面的操作都放到一个方法里,然后在获取总条数之后调用,db1collection(BSDX3S1D1KZC)skip(0)limit(20)get(),这里的skip不能为0,如果想取前20条,可以直接db1collection(BSDX3S1D1KZC)limit(20)get()这样取就好了,在循环里加个if判断如果i==1的话执行db1collection(BSDX3S1D1KZC)limit(20)get()如果不等于1就执行db1collection(BSDX3S1D1KZC)skip(skipnum)limit(20)get():谢谢您帮助试验db1collection(BSDX3S1D1KZC)skip(0)limit(60)get()then(consolelog)catch(consoleerror)提示:VM1004:1thirdScriptErrorerrCode:401002apiparametererror|errMsg:parameteroffsetoffunctionskipmustbeprovided;atpagesWordTestWordTestpagelifeCycleMethodonLoadfunctionError:errCode:401002apiparametererror|errMsg:parameteroffsetoffunctionskipmustbeprovided atnewt(http:127001:45447appservice__dev__WAServicejs:22:14994) atObjecti[asassertRequiredParam](http:127001:45447appservice__dev__WAServicejs:22:13547) atteskip(http:127001:45447appservice__dev__WAServicejs:21:9208) attonLoad(http:127001:45447appservicepagesWordTestWordTestjs:157:40) att<anonymous(http:127001:45447appservice__dev__WAServicejs:19:13907) at$t(http:127001:45447appservice__dev__WAServicejs:19:30369) atZt(http:127001:45447appservice__dev__WAServicejs:19:31040) atsn(http:127001:45447appservice__dev__WAServicejs:20:469) atFunction<anonymous(http:127001:45447appservice__dev__WAServicejs:20:3006) atL<anonymous(http:127001:45447appservice__dev__WAServicejs:19:1500)如果将skip(0)修改为skip(1),即db1collection(BSDX3S1D1KZC)skip(1)limit(60)get()then(consolelog)catch(consoleerror)读出来的只有20条记录,无法全读出{data:Array(20),errMsg:collectionget:ok}请您再帮助看下,谢谢:db1collection(BSDX3S1D1KZC)skip(0)limit(60)get()一次全部读出来就可以了
更多有关「前端无法读取云数据库集合中的的所有记录」的讨论可以前往微信公开课小程序参与互动哦!
标签:微信公开课,小程序
「前端无法读取云数据库集合中的的所有记录」热门讨论订阅
方法1:微信扫描微信公开课小程序码即可订阅热门讨论「前端无法读取云数据库集合中的的所有记录」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热门讨论「前端无法读取云数据库集合中的的所有记录」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热门讨论「前端无法读取云数据库集合中的的所有记录」
微信公开课小程序热门讨论「前端无法读取云数据库集合中的的所有记录」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热门讨论「前端无法读取云数据库集合中的的所有记录」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。
微信公开课小程序
更新时间:2019-03-15 18:14:06
>
__methodCallerx27;ofundefined
>-404011cloudfunctionexecutionerror
>,请补充选择商家自营-预付卡销售-发行方类目,并在基础信息处申请该类目,通过
>:host在模拟器中显示无效
>:请在小程序服务页面上架正式(非测试)内容或商品后重新提交审核
>.net 微信小程序 上传图片
>'setTimeout'的问题
>‘三朵里熙SPA主题减压空间’为什么搜索关键词‘三朵里‘搜不到
>‘扫普通链接二维码打开小程序‘中设置为体验版,扫码打开是线上版本
>“cloudfunctions**indexjs”gitignore
>“NO ULINK DEVICE FOUND”是怎么回事
>“万马掌上校园”的类目审核
>“上线了”公司开发的微信小程序怎么样?
>“产品是否一定需要条形码”
>