Visão geral
Neste guia, você pode aprender como definir uma preferência de leitura ao realizar operações de localização com o Laravel MongoDB.
Antes de começar
Para executar os exemplos de código neste guia, conclua o tutorial Início Rápido . Este tutorial fornece instruções sobre como configurar uma instância do MongoDB Atlas com dados de amostra e criar os seguintes arquivos em seu aplicativo web Laravel:
Movie.phparquivo, que contém um modeloMoviepara representar documentos na coleçãomoviesMovieController.phparquivo, que contém uma funçãoshow()para executar operações do banco de dadosbrowse_movies.blade.phparquivo, que contém código HTML para exibir os resultados das operações do reconhecimento de data center
As seções a seguir descrevem como editar os arquivos em seu aplicativo Laravel para executar os exemplos de código da operação e visualizar o resultado esperado.
Definir uma preferência de leitura
Para especificar quais nós do conjunto de réplicas recebem suas operações de leitura, defina uma preferência de leitura usando o método readPreference().
O método readPreference() aceita os seguintes parâmetros:
mode: (obrigatório) um valor de string especificando o modo de preferência de leitura .tagSets: (Opcional) Um valor de array especifica tags de valor-chave que correspondem a determinados membros do conjunto de réplicas.options: (Opcional) Um valor de array especificando opções adicionais de preferência de leitura .
Dica
Para ver uma lista completa de modos e opções de preferência de leitura disponíveis, consulte MongoDB\Driver\ReadPreference::__construct na documentação da extensão PHP do MongoDB.
O exemplo a seguir faz query de documentos nos quais o valor do campo title é "Carrie" e define a preferência de leitura como ReadPreference::SECONDARY_PREFERRED. Como resultado, a query recupera os resultados dos membros secundários do conjunto de réplicas ou do membro primário se nenhum secundário estiver disponível:
Use a seguinte sintaxe para especificar a query:
$movies = Movie::where('title', 'Carrie') ->readPreference(ReadPreference::SECONDARY_PREFERRED) ->get();
Para ver os resultados da query na exibição browse_movies , edite a função show() no arquivo MovieController.php para se assemelhar ao código a seguir:
class MovieController { public function show() { $movies = Movie::where('title', 'Carrie') ->readPreference(ReadPreference::SECONDARY_PREFERRED) ->get(); return view('browse_movies', [ 'movies' => $movies ]); } }
Informações adicionais
Para saber como recuperar dados com base em critérios de filtro, consulte o guia Recuperar dados.
Para saber como modificar a maneira como a integração com o Laravel retorna resultados, consulte o guia Modificar resultados da query.