Recuperar valores de campo distintos
Nesta página
Você pode recuperar valores de campo distintos de documentos em uma coleção ligando para o método distinct()
em uma coleção de objeto ou em um construtor de queries.
Para recuperar valores de campo distintos, passe um filtro de query para o método where()
e um nome de campo para o método select()
. Em seguida, chame distinct()
para retornar os valores exclusivos do campo selecionado em documentos que correspondem ao filtro de query.
Dica
Para obter mais informações sobre filtros de query, consulte a seção Recuperar documentos que correspondam a uma query do guia Operações de leitura.
Exemplo
Selecione a partir das seguintes abas Eloquent e Query Builder para visualizar exemplos de uso para a mesma operação que usa cada sintaxe de query correspondente:
Este exemplo executa as seguintes ações:
Utiliza o modelo
Movie
Eloquent para representar a coleção dosample_mflix
movies
banco de dados doRecupera valores de campo distintos de documentos da coleção
movies
que correspondem a um filtro de consultaImprime os valores distintos
O exemplo chama os seguintes métodos no modelo Movie
:
where()
: corresponde a documentos em que o valor do campodirectors
inclui"Sofia Coppola"
select()
: recupera os valores de campoimdb.rating
dos documentos correspondentesdistinct()
: Recupera os valores únicos do campo selecionado e retorna a lista de valoresget()
: recupera os resultados da query
$ratings = Movie::where('directors', 'Sofia Coppola') ->select('imdb.rating') ->distinct() ->get(); echo $ratings;
[[5.6],[6.4],[7.2],[7.8]]
Este exemplo executa as seguintes ações:
Acessos a coleção
movies
chamando o métodotable()
a partir da faseDB
Recupera valores de campo distintos de documentos da coleção
movies
que correspondem a um filtro de consultaImprime os valores distintos
O exemplo chama os seguintes métodos de construtor de query:
where()
: corresponde a documentos em que o valor do campodirectors
inclui"Sofia Coppola"
select()
: recupera os valores de campoimdb.rating
dos documentos correspondentesdistinct()
: Recupera os valores únicos do campo selecionado e retorna a lista de valoresget()
: recupera os resultados da query
$ratings = DB::table('movies') ->where('directors', 'Sofia Coppola') ->select('imdb.rating') ->distinct() ->get(); echo $ratings;
[5.6,6.4,7.2,7.8]
Para saber como editar seu aplicativo Laravel para executar o exemplo de uso, consulte a página de exemplos de uso.