Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Modificar resultados de queries

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 muestran 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, consulta la SecciónModelos Elocuentes.

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.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 de tu aplicación Laravel para ejecutar los ejemplos de código de operaciones de búsqueda y ver la salida esperada.

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
]);
}
}
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 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
]);
}
}
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 en función de criterios de filtro, consulta la guía Recuperar datos.

Volver

Texto de query

En esta página