如何用mongoose直接查询数据中的数量(做统计)
 发布于 9 年前  作者 varjay  18682 次预览  最后一次回复是 9 年前  来自 问答 

1.png

如上图中,想要获取object的数量,上面那条数据是通过如下代码得到的。

Category .find({_id: catId}) .populate({ path: ‘movies’, select: ‘title poster’ }) .exec(function(err,result){ console.log(result) })

10 回复
baka397

查询总数量用 http://mongoosejs.com/docs/api.html#model_Model.count

你标红部分直接用.length获取不就行么

SinalVee

这个还是直接Move.count({ catId: catId })比较好

varjay

@SinalVee 可是count得到的是这条数据的数量啊,就是符合catId的数量,不是movie中的数组长度,该怎么办

varjay

@2linziyi2 @SinalVee 可是count得到的是这条数据的数量啊,就是符合catId的数量,不是movie中的数组长度,该怎么办

SinalVee

@varjay movie不是关联的movieModel吗,Category.find({_id: catId}).populate('movie')拿到的movie数组不就是movie中catId是catId的数组吗

gyteng

用aggregate吧,各种查询需求都能满足

Qiubaowei

直接.length不可以吗

varjay

@Qiubaowei 那不是把整个数据都取出来了吗,会不会影响性能

TimothyJin

@varjay 如果影响性能,那岂不是你自己设计的库不合理?如果movies有几十万的数据,你放一个collection的field下,明显是数据库的设计问题