Overview
En esta guía, puedes aprender cómo personalizar la manera en que Laravel MongoDB devuelve los resultados de las consultas. Puedes modificar los resultados de una operación de búsqueda encadenando más métodos al método where().
Las siguientes secciones muestran cómo modificar el comportamiento del método where():
La funciónSaltar y limitar resultados utiliza el
skip()método para establecer el número de documentos a omitir y eltake()método para establecer el número total de documentos a devolver.La función Ordenar resultados de consulta utiliza el
orderBy()método para devolver los resultados de la consulta en un orden específico basado en los valores de los campos.
Para obtener más información sobre los modelos Eloquent en la integración de Laravel, consulta la sección Modelos Eloquent.
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.
Omitir y Limitar Resultados
Este ejemplo query documentos en los que el valor de year es 1999. La operación omite los primeros 2 documentos coincidentes y arroja un total de 3 documentos.
Utilice la siguiente sintaxis para especificar la query:
$movies = Movie::where('year', 1999) ->skip(2) ->take(3) ->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('year', 1999) ->skip(2) ->take(3) ->get(); return view('browse_movies', [ 'movies' => $movies ]); } }
Ordene los resultados del query
Para ordenar los resultados de la query en función de los valores de los campos especificados, utiliza el método where() seguido del método orderBy().
Puedes establecer una dirección de ordenamiento ascendente o descendente en los resultados. Por defecto, el método orderBy() establece un orden ascendente en el nombre de campo proporcionado, pero también puedes especificar explícitamente un orden ascendente pasando "asc" como segundo parámetro. Para especificar un orden descendente, pasa "desc" como segundo parámetro.
Si tus documentos contienen valores duplicados en un campo específico, puedes gestionar el empate especificando más campos en los que ordenar. Esto garantiza resultados coherentes si los demás campos contienen valores únicos.
En este ejemplo, se consultan documentos en los que el valor del campo countries contiene "Indonesia" y los resultados se ordenan primero por una ordenación ascendente en el campo year, y luego por una ordenación descendente en el campo title.
Utilice la siguiente sintaxis para especificar la query:
$movies = Movie::where('countries', 'Indonesia') ->orderBy('year') ->orderBy('title', 'desc') ->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('countries', 'Indonesia') ->orderBy('year') ->orderBy('title', 'desc') ->get(); return view('browse_movies', [ 'movies' => $movies ]); } }
Tip
Para aprender más sobre clasificación, consulta los siguientes recursos:
Orden natural en el glosario del manual del servidor
Ordenamiento, Agrupamiento, Límite y Offset en la documentación de Laravel
Información Adicional
Para ver ejemplos de código ejecutables que demuestren cómo realizar operaciones de búsqueda utilizando la integración de Laravel, consulta los siguientes ejemplos de uso:
Para aprender cómo recuperar datos en función de criterios de filtro, consulta la guía Recuperar datos.