按相关(hasMany)文档的数量排序

时间:2017-10-16 15:15:42

标签: php laravel jenssegers-mongodb

我有2个收藏品。 车辆和视图。 我想带回按照观看次数排序的车辆清单。

我的车辆类

class Vehicle extends Moloquent {

    protected $dates = ['date_assigned'];

    public function associated_views()
    {
        return $this->hasMany('App\Collections\View');
    }

}

我的View类

class View extends Moloquent {

    public function associated_vehicle()
    {
        return $this->belongsTo('App\Collections\Vehicle');
    }

}

我可以通过$ vehicle-> associated_views-> count()来获取事后的计数,但这不能让我在拉回每条记录之前对字段进行排序。这可能吗?

1 个答案:

答案 0 :(得分:0)

使用withCount()

Vehicle::withCount('views')->latest('views_count')->get()
  

如果您想要计算关系中的结果数而不实际加载它们,您可以使用withCount方法,这会在生成的模型上放置{relation}_count

https://laravel.com/docs/5.5/eloquent-relationships#counting-related-models