Menu Docs
Página inicial do Docs
/ / /
C#/.NET
/ / /

Especifique documentos a serem devolvidos

Nesta página

  • Visão geral
  • Dados de amostra
  • Limite
  • Sort
  • Ignorar
  • Combinar Limite, Classificar e Ignorar
  • Informações adicionais
  • Documentação da API

Neste guia, você pode aprender a especificar quais documentos retornar de uma operação de leitura encadeando os seguintes métodos ao método Find():

  • Limit(): especifica o número máximo de documentos para retornar de uma query

  • Sort(): Especifica a ordem de classificação para os documentos devolvidos

  • Skip(): Especifica o número de documentos a ignorar antes de retornar os resultados da consulta

Os exemplos neste guia usam a collection restaurants no banco de dados sample_restaurants dos conjuntos de banco de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .

Os exemplos nesta página utilizam a seguinte classe Restaurant como um modelo para os documentos na coleção:

[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 o número máximo de documentos retornados de uma operação de leitura, use o método Limit() fornecido pela interface IFindFluent. Depois de chamar o método Find(), encadeie o método Limit() para modificar o comportamento da operação.

O exemplo a seguir encontra todos os restaurantes que têm um cuisine valor de campo de "Italian" e limita os 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

Dica

O exemplo anterior retorna os cinco primeiros documentos correspondidos pela query de acordo com sua ordem natural no banco de banco de dados. A seção a seguir descreve como devolver os documentos em uma ordem especificada.

Para retornar documentos em uma ordem especificada, use o método Sort() fornecido pela interface IFindFluent. Depois de chamar o método Find(), encadeie o método Sort() para modificar o comportamento da operação.

Ao chamar Sort(), você deve passar a definição de classificação como um parâmetro. Você pode construir uma definição de classificação utilizando o método Builders<T>.Sort.Ascending() para classificar valores do mais baixo para o mais alto, ou o método Builders<T>.Sort.Ascending() para classificá-los do mais alto para o mais baixo. Ambos os métodos usam o nome do campo para classificar como parâmetro. Esses métodos podem ser encadeados para classificar documentos retornados por vários campos.

O exemplo a seguir retorna todos os documentos que têm um valor de campo cuisine de "Italian", classificados em ordem crescente de 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 ignorar um número especificado de documentos antes de retornar os resultados da query, use o método Skip() fornecido pela interface do IFindFluent. Depois de chamar o método Find(), encadeie o método Skip() para modificar o comportamento da operação.

O exemplo a seguir retorna todos os documentos que têm um valor de campo cuisine de "Italian" e ignora os primeiros 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

Você pode encadear os métodos Limit(), Sort() e Skip() a uma única chamada de método Find(). Isso permite que você defina um número máximo de documentos classificados para retornar da operação de leitura, ignorando um número específico de documentos antes de retornar.

O exemplo a seguir retorna 5 documentos com um valor cuisine de "Italian". Os resultados são classificados em ordem crescente pelo valor do campo name, ignorando os primeiros 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

Observação

A ordem em que você chama esses métodos não altera os documentos que são devolvidos. O driver .NET/C# reordena automaticamente as chamadas para executar primeiro a operação de classificação, a operação de ignorar em seguida e, em seguida, a operação de limite.

Para obter mais informações sobre a recuperação de documentos, consulte o guia Recuperar dados .

Para obter mais informações sobre como especificar uma query, consulte o guia Especificar uma query .

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API:

Voltar

Monitorar alterações de dados