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.

Limite o número de resultados retornados

Neste guia, você pode aprender como usar o MongoDB Rust Driver para executar operações de limite. Estas operações especificam o número de documentos retornados de uma operação de leitura.

Use o método limit() para limitar o número de documentos que uma operação de leitura pode retornar. A operação retornará menos documentos se não houver documentos suficientes presentes para atingir o limite especificado.

Se você usar o método limit() com o método skip(), o salto será aplicado primeiro e o limite será aplicado somente aos documentos restantes. Para saber mais sobre pular operações, consulte o guia Ignorar resultados retornados.

Os exemplos deste guia utilizam o seguinte Book estruturado como um modelo para documentos na coleção books:

#[derive(Debug, Serialize, Deserialize)]struct Book { name: String, author: String, length: i32,}

O seguinte código mostra como inserir dados de amostra na coleção books:

let uri = "connection string";let client = Client::with_uri_str(uri).await?;let my_coll: Collection<Book> = client.database("db").collection("books"); let books = vec![ Book { name: "The Brothers Karamazov".to_string(), author: "Dostoyevsky".to_string(), length: 824, }, Book { name: "Atlas Shrugged".to_string(), author: "Rand".to_string(), length: 1088, }, Book { name: "Les Misérables".to_string(), author: "Hugo".to_string(), length: 1462, }, Book { name: "A Dance with Dragons".to_string(), author: "Martin".to_string(), length: 1104, },]; my_coll.insert_many(books, None).await?;

Você pode especificar o número máximo de documentos para retornar em uma query ou em um pipeline de agregação .

Para limitar o número de documentos retornados, você pode inicializar uma instância FindOptions e especificar o número de documentos que deseja limitar usando o método limit(). Em seguida, passe sua estrutura FindOptions como parâmetro para o método find().

Este exemplo executa uma operação find() que executa as seguintes ações:

  • Filtra os resultados para incluir apenas documentos em que o campo length é maior que 1000

  • Classifica os resultados em ordem crescente de seus valores de campo length

  • Limita os resultados aos dois primeiros documentos

let filter = doc! { "length": { "$gt": 1000 } }; let find_options = FindOptions::builder() .sort(doc! { "length": 1 }) .limit(2) .build(); let mut cursor = my_coll.find(filter, find_options).await?; while let Some(result) = cursor.try_next().await? { println!("{:?}", result);}

Você pode usar o estágio $limit em um pipeline de agregação para limitar os resultados retornados. Para saber mais sobre as operações de agregação , consulte o Guia de agregação.

Este exemplo executa um pipeline de agregação que executa as seguintes ações:

  • Classifica os resultados em ordem decrescente de seus valores de campo length

  • Limita os resultados retornados aos dois primeiros documentos

let pipeline = vec![ doc! { "$match": {} }, doc! { "$sort": { "length": -1 } }, doc! { "$limit": 2 },]; let mut cursor = my_coll.aggregate(pipeline, None).await?; while let Some(result) = cursor.try_next().await? { println!("{:?}", result);}

Para saber mais sobre as operações mencionadas neste guia, consulte os seguintes guias:

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