如何用mongoose直接查询数据中的数量(做统计)
发布于 8 年前 作者 varjay 16890 次浏览 来自 问答

1.png

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

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

10 回复

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

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

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

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

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

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

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

直接.length不可以吗

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

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

回到顶部