Overview
En esta guía, puedes aprender a establecer una preferencia de lectura al realizar operaciones de búsqueda con Laravel MongoDB.
Antes de comenzar
Para ejecutar los ejemplos de código en esta guía, completa el tutorial de Inicio Rápido. Este tutorial proporciona instrucciones para configurar una instancia de MongoDB Atlas con datos de muestra y crear los siguientes archivos en su aplicación web Laravel:
Movie.phparchivo, que contiene un modeloMoviepara representar documentos en la colecciónmoviesMovieController.phparchivo, que contiene una funciónshow()para ejecutar operaciones de base de datosbrowse_movies.blade.phparchivo, que contiene código HTML para mostrar los resultados de las operaciones de la base de datos
Las siguientes secciones describen cómo editar los archivos de tu aplicación Laravel para ejecutar los ejemplos de código de operaciones de búsqueda y ver la salida esperada.
Configura una Preferencia de lectura
Para especificar qué miembros del conjunto de réplicas reciben tus operaciones de lectura, establece una preferencia de lectura utilizando el método readPreference().
El método readPreference() acepta los siguientes parámetros:
mode: (Obligatorio) Un valor de string que especifica el modo de preferencia de lectura.tagSets(Opcional) Un valor de arreglo que especifica etiquetas de clave-valor que corresponden a ciertos miembros del set de réplicas.options: (Opcional) Un valor de arreglo que especifica opciones adicionales de preferencia de lectura.
Tip
Para ver una lista completa de los modos y opciones de preferencia de lectura disponibles, consulta MongoDB\Driver\ReadPreference::__construct en la documentación de la extensión PHP de MongoDB.
El siguiente ejemplo realiza una consulta de los documentos en los que el valor del campo title es "Carrie" y establece la preferencia de lectura en ReadPreference::SECONDARY_PREFERRED. Como resultado, la query recupera los resultados de los miembros secundarios del conjunto de réplicas o del miembro primario si no hay secundarios disponibles:
Utilice la siguiente sintaxis para especificar la query:
$movies = Movie::where('title', 'Carrie') ->readPreference(ReadPreference::SECONDARY_PREFERRED) ->get();
Para ver los resultados de la query en la vista browse_movies, edita la función show() en el archivo MovieController.php para que se asemeje al siguiente código:
class MovieController { public function show() { $movies = Movie::where('title', 'Carrie') ->readPreference(ReadPreference::SECONDARY_PREFERRED) ->get(); return view('browse_movies', [ 'movies' => $movies ]); } }
Información Adicional
Para aprender cómo recuperar datos en función de criterios de filtro, consulta la guía Recuperar datos.
Para aprender cómo modificar la forma en que la integración de Laravel devuelve resultados, consulta la guía Modificar resultados de query.