Docs Menu
Docs Home
/ /

Modificar resultados de la consulta

En esta guía, aprenderá a personalizar la forma en que Laravel MongoDB devuelve los resultados de las consultas. Puede modificar los resultados de una operación de búsqueda encadenando más métodos a la consulta. where() .

Las siguientes secciones demuestran cómo modificar el comportamiento del método where():

  • Skip and Limit Results utiliza el skip() método para establecer la cantidad de documentos a omitir y el take() método para establecer la cantidad total de documentos a devolver

  • Ordenar resultados de la query utiliza el método orderBy() para devolver resultados de query en un orden específico según los valores del campo

Para obtener más información sobre los modelos Eloquent en la integración de Laravel, consulte SecciónModelos Elocuentes.

Para ejecutar los ejemplos de código de esta guía, complete el tutorial de inicio rápido. Este tutorial proporciona instrucciones para configurar una instancia de MongoDB Atlas con datos de ejemplo y crear los siguientes archivos en su aplicación web de Laravel:

  • Movie.php archivo, que contiene un modelo Movie para representar documentos en la colección movies

  • MovieController.php archivo, que contiene una función show() para ejecutar operaciones de base de datos

  • browse_movies.blade.php archivo, 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 en su aplicación Laravel para ejecutar los ejemplos de código de la operación de búsqueda y ver el resultado esperado.

Este ejemplo busca documentos cuyo valor year sea 1999. La operación omite los primeros 2 documentos coincidentes y genera un total de 3 documentos.

Utilice la siguiente sintaxis para especificar la consulta:

$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
]);
}
}
Title: Three Kings
Year: 1999
Runtime: 114
IMDB Rating: 7.2
IMDB Votes: 130677
Plot: In the aftermath of the Persian Gulf War, 4 soldiers set out to steal gold
that was stolen from Kuwait, but they discover people who desperately need their help.
Title: Toy Story 2
Year: 1999
Runtime: 92
IMDB Rating: 7.9
IMDB Votes: 346655
Plot: When Woody is stolen by a toy collector, Buzz and his friends vow to rescue him,
but Woody finds the idea of immortality in a museum tempting.
Title: Beowulf
Year: 1999
Runtime: 95
IMDB Rating: 4
IMDB Votes: 9296
Plot: A sci-fi update of the famous 6th Century poem. In a besieged land, Beowulf must
battle against the hideous creature Grendel and his vengeance seeking mother.

Para ordenar los resultados de la consulta según los valores de los campos especificados, utilice el método where() seguido del método orderBy().

Puede establecer una ordenación ascendente o descendente de los resultados. De forma predeterminada, el orderBy() método establece una ordenación ascendente según el nombre del campo proporcionado, pero puede especificarla explícitamente pasando "asc" como segundo parámetro. Para especificar una ordenación descendente, pase "desc" como segundo parámetro.

Si sus documentos contienen valores duplicados en un campo específico, puede solucionar el problema especificando más campos para ordenar. Esto garantiza resultados consistentes si los demás campos contienen valores únicos.

Este ejemplo consulta documentos en los que el valor del campo countries contiene "Indonesia" y ordena los resultados primero mediante un ordenamiento ascendente en el campo year y luego mediante un ordenamiento descendente en el campo title.

Utilice la siguiente sintaxis para especificar la consulta:

$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
]);
}
}
Title: Joni's Promise
Year: 2005
Runtime: 83
IMDB Rating: 7.6
IMDB Votes: 702
Plot: A film delivery man promises ...
Title: Gie
Year: 2005
Runtime: 147
IMDB Rating: 7.5
IMDB Votes: 470
Plot: Soe Hok Gie is an activist who lived in the sixties ...
Title: Requiem from Java
Year: 2006
Runtime: 120
IMDB Rating: 6.6
IMDB Votes: 316
Plot: Setyo (Martinus Miroto) and Siti (Artika Sari Dewi)
are young married couple ...
...

Tip

Para aprender más sobre clasificación, consulta los siguientes recursos:

Para ver ejemplos de código ejecutables que demuestran cómo realizar operaciones de búsqueda mediante la integración de Laravel, consulte los siguientes ejemplos de uso:

Para aprender cómo recuperar datos según criterios de filtro, consulte la guía Recuperar datos.

Volver

Texto de query

En esta página