Definir uma preferência de leitura
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 aplicação web Laravel :
Movie.php
arquivo, que contém um modeloMovie
para representar documentos na coleçãomovies
MovieController.php
arquivo, que contém uma funçãoshow()
para executar operações do banco de dadosbrowse_movies.blade.php
arquivo, 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 visualizar uma lista completa de modos e opções de preferência de leitura disponíveis, consulte MongoDB\Driver\ReadPreference::__construct na documentação de 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 ]); } }
Title: Carrie Year: 1952 Runtime: 118 IMDB Rating: 7.5 IMDB Votes: 1458 Plot: Carrie boards the train to Chicago with big ambitions. She gets a job stitching shoes and her sister's husband takes almost all of her pay for room and board. Then she injures a finger and ... Title: Carrie Year: 1976 Runtime: 98 IMDB Rating: 7.4 IMDB Votes: 115528 Plot: A shy, outcast 17-year old girl is humiliated by her classmates for the last time. Title: Carrie Year: 2002 Runtime: 132 IMDB Rating: 5.5 IMDB Votes: 7412 Plot: Carrie White is a lonely and painfully shy teenage girl with telekinetic powers who is slowly pushed to the edge of insanity by frequent bullying from both her classmates and her domineering, religious mother. Title: Carrie Year: 2013 Runtime: 100 IMDB Rating: 6 IMDB Votes: 98171 Plot: A reimagining of the classic horror tale about Carrie White, a shy girl outcast by her peers and sheltered by her deeply religious mother, who unleashes telekinetic terror on her small town after being pushed too far at her senior prom.
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.