使用mongoose同时分类和聚合

我有一些模型,基本上是这样的:

业主有很多东西

事情有很多用途

我想通过总结事情的用量来分类所有者,其中uses.good = true。

基本上,我必须有条件地过滤掉某些用途,得到每个事物的最终数组的长度,然后对它们进行求和和sorting。

这是迄今为止的近似值:

let owners = await Owner.find().populate({ path: 'things', populate: { path: 'uses', match: { good: true } } }).sort({ uses : -1 }).exec() 

有类似的问题,不知道这是最好的方法,或者如果我应该使用聚合。