2015-09-15 4 views
1

У меня есть коллекция MongoDB организованная как следующий документ:Laravel Eloquent - получить различные значения одного столбца

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

Мне нужно, чтобы получить массив из macrocategory поля, но он назначается на несколько документов, и мне нужен только одно появление каждого из них. Я пробовал использовать отдельный в своем запросе Eloquent, но я не могу использовать его, так как не знаю, какое значение возвращает.

Мой запрос в настоящее время, который возвращает макрокатегорий несколько раз:

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

Спасибо!

ответ

10

Вы допускаете использовать различны, если вы хотите весь ряд, чтобы быть уникальным, если вы хотите конкретный столбец должен быть уникальным, вы должны использовать GROUP BY

Я думаю, отчетливый будет такой же, как ваш order by coulmn -

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

Кстати, если у вас есть столбцы, которые вам не нужны, вы должны использовать select и получать только те столбцы, которые вы делаете.

+0

Да, это был правильный ответ! Danke –