为了账号安全,请及时绑定邮箱和手机立即绑定

mongoose的count使用

mongoose的count使用

收到一只叮咚 2018-09-21 17:00:13
问题描述在nodejs中使用mongooseconst query=myModel.find({name:'xiaoming'});const total=query.count();const data=query.skip(20).limit(10);为什么这样写会报错?正确的写法应该怎样写?
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

查了下文档,应该是因为你这是两次查询,一次count查询,一次skip加limit查询,所以你的query查询永远都是最先指定的count查询,所以你第二次的结果其实就是count返回的结果,所以是number类型的数字。

虽然不知道你为啥又不写回调,又不走Promise形式也能得到结果。我也就这么写了~

分两次查询就行了,因为你第二次查询是skip加limit,所以应该没办法不走2次查询又能得出总文档数又能得出分页查询得结果。

const query1 = myModel.find({name:'xiaoming'});
const query2 = myModel.find({name:'xiaoming'});
const total = await query1.count().exec(); //所有name为xiaoming的文档数量const data = await query2.skip(20).limit(10).exec();


查看完整回答
反对 回复 2018-09-21
  • 1 回答
  • 0 关注
  • 2162 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信