Laravel Eloquent - 获取某一列的不同值

7

我有一个MongoDB集合,组织形式如下文档:

{ "_id" : ObjectId("55f699bb1638cf0f4ba139f1"), "code" : 169, "categories" : "Consulenti del lavoro", "listing" : "B", "macrocategory" : "Consulenti" }

我需要获取宏类别字段的数组,但它被分配给多个文档,我只需要每个宏类别字段的一个实例。我尝试在我的 Eloquent 查询中使用 distinct,但我不能使用它,因为我不知道返回值是哪个。

现在我的查询会多次返回宏类别:

$macrocategories = Category::orderBy('macrocategory','asc')->get();

谢谢您!
1个回答

15

当你想要整行唯一时,应该使用 distinct;当你想要特定列唯一时,应该使用 GROUP BY

我想,distinct 应该与您的 order by 列相同 -

$macrocategories = Category::orderBy('macrocategory','asc')->groupBy('macrocategory')->get();

顺便说一句,如果你有不需要的列,应该使用 select 仅获取你需要的列。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接