Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Especifique documentos a serem devolvidos

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 coleção restaurants no banco de dados sample_restaurants dos conjuntos de dados de amostra do Atlas. Para aprender a criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o Guia de Introdução do MongoDB.

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);
}

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);
}

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);
}

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);
}

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 Criar um filtro de query.

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