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
/ /

Especifica los documentos a devolver

En esta guía, puedes aprender a especificar qué documentos devolver de una operación de lectura encadenando los siguientes métodos al Find() :

  • Límite(): especifica el número máximo de documentos que se devolverán de una consulta

  • Sort(): Especifica el orden de clasificación para los documentos devueltos.

  • Skip(): Especifica el número de documentos que se deben omitir antes de devolver los resultados de la query.

Los ejemplos en esta guía utilizan la colección restaurants en la base de datos sample_restaurants de los conjuntos de datos de muestra de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulta la guía MongoDB Primeros Pasos.

Los ejemplos de esta página utilizan la siguiente clase Restaurant como modelo para los documentos de la colección:

[BsonIgnoreExtraElements]
public class Restaurant {
public ObjectId Id { get; set; }
[BsonElement("name")]
public string Name { get; set; }
[BsonElement("cuisine")]
public string Cuisine { get; set; }
}

Para especificar el número máximo de documentos que se devolverán de una operación de lectura, usa el método Limit() proporcionado por la interfaz IFindFluent. Después de llamar al método Find(), encadena el método Limit() para modificar el comportamiento de la operación.

El siguiente ejemplo encuentra todos los restaurantes que tienen un valor de campo cuisine de "Italian" y limita los resultados a 5 documentos:

var filter = Builders<Restaurant>.Filter.Eq("cuisine", "Italian");
var results = collection.Find(filter).Limit(5).ToList();
foreach (var result in results)
{
Console.WriteLine(result.Name);
}
V & T Restaurant
Mimis Restaurant & Bar
Venice Restaurant
Areo Restaurant
Tre Giovani Pizza & Pasta

Tip

El ejemplo anterior devuelve los primeros cinco documentos que coinciden con la consulta según su orden natural en la base de datos. La siguiente sección describe cómo retornar los documentos en un orden especificado.

Para devolver documentos en un orden específico, se debe utilizar el método Sort() proporcionado por la interfaz IFindFluent. Después de llamar al método Find(), encadena el método Sort() para modificar el comportamiento de la operación.

Cuando llames a Sort(), debes pasar la definición del ordenamiento como un parámetro. Puedes construir una definición de ordenación utilizando el método Builders<T>.Sort.Ascending() para ordenar los valores de menor a mayor, o el método Builders<T>.Sort.Ascending() para ordenarlos de mayor a menor. Ambos métodos toman el nombre del campo por el cual ordenar como un parámetro. Estos métodos pueden encadenarse para ordenar los documentos devueltos por varios campos.

El siguiente ejemplo devuelve todos los documentos que tienen un valor de campo cuisine de "Italian", ordenados en orden ascendente de los valores de campo name:

var filter = Builders<Restaurant>.Filter.Eq("cuisine", "Italian");
var sort = Builders<Restaurant>.Sort.Ascending("name");
var results = collection.Find(filter).Sort(sort).ToList();
foreach (var result in results)
{
Console.WriteLine(result.Name);
}
(Lewis Drug Store) Locanda Vini E Olii
101 Restaurant And Bar
44 Sw Ristorante & Bar
900 Park
A Voce
...

Para omitir un número especificado de documentos antes de devolver los resultados de tu query, utiliza el método Skip() proporcionado por la interfaz IFindFluent. Después de llamar al método Find(), encadena el método Skip() para modificar el comportamiento de la operación.

El siguiente ejemplo devuelve todos los documentos que tienen un valor de campo cuisine de "Italian" y omite los primeros 10 documentos:

var filter = Builders<Restaurant>.Filter.Eq("cuisine", "Italian");
var results = collection.Find(filter).Skip(10).ToList();
foreach (var result in results)
{
Console.WriteLine(result.Name);
}
Trattoria Alba
Da Umberto Restaurant
La Strada Restaurant
Pasta Lovers Trattoria
Nanni Restaurant
Villa Mosconi Restaurant
Villa Berulia
Marco Polo Ristorante
Cafe Luna
Baraonda

Puedes encadenar los métodos Limit(), Sort() y Skip() en una sola llamada al método Find(). Esto le permite establecer un número máximo de documentos ordenados para devolver de la operación de lectura, omitiendo una cantidad especificada de documentos antes de devolverlos.

El siguiente ejemplo devuelve 5 documentos cuyo valor cuisine es "Italian". Los resultados se ordenan en orden ascendente según el valor del campo name, omitiendo los primeros 10 documentos:

var filter = Builders<Restaurant>.Filter.Eq("cuisine", "Italian");
var sort = Builders<Restaurant>.Sort.Ascending("name");
var results = collection.Find(filter).Limit(10).Sort(sort).Skip(10).ToList();
foreach (var result in results)
{
Console.WriteLine(result.Name);
}
Acqua
Acqua Restaurant
Acqua Santa
Acquista Trattoria
Acquolina Catering
Adriatic Restaurant Pizzeria Bar
Adrienne'S Pizza Bar
Ai Fiori
Aita Restaurant
Al Di La

Nota

El orden en el que se llaman estos métodos no cambia los documentos que se devuelven. El driver .NET/C# reorganiza automáticamente las llamadas para realizar primero la operación de ordenación, la operación de omisión siguiente y, por último, la operación de límite.

Para obtener más información sobre la recuperación de documentos, consulte la Retrieve Data guide.

Para obtener más información sobre cómo especificar una query, consulte la guía Crear un filtro de query.

Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API:

Volver

Buscar documentos

En esta página