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

Contagem de documentos

Neste guia, você aprenderá a obter uma contagem do número de documentos em sua coleção.

Os exemplos deste guia usam os seguintes documentos em uma collection chamada students:

{ "_id": 1, "name": "Jonathon Howard ", "finalGrade": 87.5 }
{ "_id": 2, "name": "Keisha Freeman", "finalGrade": 12.3 }
{ "_id": 3, "name": "Wei Zhang", "finalGrade": 99.0 }
{ "_id": 4, "name": "Juan Gonzalez", "finalGrade": 85.5 }
{ "_id": 5, "name": "Erik Trout", "finalGrade": 72.3 }
{ "_id": 6, "name": "Demarcus Smith", "finalGrade": 88.8 }

A seguinte classe Student modela os documentos nesta coleção:

public class Student {
public int Id { get; set; }
public string Name { get; set; }
public double FinalGrade { get; set; }
}

Observação

Os documentos na coleção students usam a convenção de nomenclatura de camelo. Os exemplos neste guia usam um ConventionPack para desserializar os campos na coleção em maiúsculas e minúsculas Pascal e mapeá-los para as propriedades na classe Student .

Para saber mais sobre serialização personalizada, consulte Serialização personalizada.

Para contar o número de documentos que correspondem ao seu filtro de consulta, utilize o método CountDocuments(). Se você passar por um filtro de query vazio, esse método retornará o número total de documentos na coleção.

O exemplo a seguir conta o número de documentos em que o valor de finalGrade é menor que 80:

var filter = Builders<Student>.Filter.Lt(s => s.FinalGrade, 80.0);
var count = _myColl.CountDocuments(filter);
Console.WriteLine("Number of documents with a final grade less than 80: " + count);

Você pode modificar o comportamento do CountDocuments() passando um tipo de CountOptions como um parâmetro. Se você não especificar nenhuma opção, o driver usará valores padrão.

Você pode definir as seguintes propriedades em um objeto CountOptions:

Propriedade
Descrição

Collation

The type of language collation to use when sorting results. See the Collation section of this page for more information.
Default: null

Hint

O índice a ser usado para procurar documentos a serem contados.
Padrão: null

Limit

O número máximo de documentos a serem contados.
Padrão: 0

MaxTime

A quantidade máxima de tempo que a query pode executar no servidor.
Padrão: null

Skip

O número de documentos a ignorar antes de contar.
Padrão: 0

Dica

Quando você usa CountDocuments() para retornar o número total de documentos em uma collection, o MongoDB executa uma varredura de collection. Você pode evitar uma varredura de collection e melhorar o desempenho desse método usando uma dica para aproveitar o índice incorporado no campo _id. Utilize esta técnica somente ao chamar CountDocuments() com um parâmetro de query vazio.

var filter = Builders<Student>.Filter.Empty;
CountOptions opts = new CountOptions(){Hint = "_id_"};
var count = collection.CountDocuments(filter, opts);

Para configurar o agrupamento para sua operação, crie uma instância da classe Agrupamento.

A tabela seguinte descreve os parâmetros que o construtor do Collation aceita. Ela também lista a propriedade de classe correspondente que você pode usar para ler o valor de cada configuração.

Parâmetro
Descrição
Propriedade de classe

locale

Specifies the International Components for Unicode (ICU) locale. For a list of supported locales, see Collation Locales and Default Parameters in the MongoDB Server Manual.

If you want to use simple binary comparison, use the Collation.Simple static property to return a Collation object with the locale set to "simple".
Data Type: string

Locale

caseLevel

(Opcional) Especifica se a comparação de caso deve ser incluída.

Quando este argumento é true, o comportamento do driver depende do valor do argumento strength:

- Se strength for CollationStrength.Primary, o driver compara caracteres básicos e maiúsculas e minúsculas.
- Se strength for CollationStrength.Secondary, o driver compara caracteres básicos, diacríticos, outras diferenças secundárias e maiúsculas e minúsculas.
- Se strength for qualquer outro valor, este argumento será ignorado.

Quando este argumento é false, o driver não inclui comparação de maiúsculas e minúsculas no nível de força Primary ou Secondary.

Tipo de dados: boolean
Padrão: false

CaseLevel

caseFirst

(Optional) Specifies the sort order of case differences during tertiary level comparisons.

Data Type: CollationCaseFirst
Default: CollationCaseFirst.Off

CaseFirst

strength

(Optional) Specifies the level of comparison to perform, as defined in the ICU documentation.

Data Type: CollationStrength
Default: CollationStrength.Tertiary

Strength

numericOrdering

(Opcional) Especifica se o driver compara strings numéricas como números.

Se esse argumento true for, o driver compara strings numéricas como números. Por exemplo, ao comparar as strings "10" e "2", o driver trata os valores como 10 2e, e considera 10 maior.

Se esse argumento for false ou excluído, o driver compara cadeias de caracteres numéricas como cadeias de caracteres. Por exemplo, ao comparar as strings "10" e "2", o driver compara um caractere de cada vez. Porque "1" é inferior a "2", o condutor encontra "10" para ser menor que "2".

Para obter mais informações, consulte Restrições de agrupamento no manual do MongoDB Server .

Tipo de Dados: boolean
Padrão: false

NumericOrdering

alternate

(Optional) Specifies whether the driver considers whitespace and punctuation as base characters for purposes of comparison.

Data Type: CollationAlternate
Default: CollationAlternate.NonIgnorable (spaces and punctuation are considered base characters)

Alternate

maxVariable

(Optional) Specifies which characters the driver considers ignorable when the alternate argument is CollationAlternate.Shifted.

Data Type: CollationMaxVariable
Default: CollationMaxVariable.Punctuation (the driver ignores punctuation and spaces)

MaxVariable

normalization

(Optional) Specifies whether the driver normalizes text as needed.

Most text doesn't require normalization. For more information about normalization, see the ICU documentation.

Data Type: boolean
Default: false

Normalization

backwards

(Opcional) Especifica se as strings que contêm diacríticos são ordenadas da parte de trás da string para a frente.

Tipo de dados: boolean
Padrão: false

Backwards

Para obter mais informações sobre agrupamento, consulte a página Agrupamento no manual do MongoDB Server.

Para estimar o número total de documentos em sua coleção, use o método EstimatedDocumentCount().

Observação

O método EstimatedDocumentCount() é mais eficiente do que o método CountDocuments(), pois usa os metadados da collection em vez de fazer a varredura de toda a collection.

Você pode modificar o comportamento do EstimatedDocumentCount() passando um tipo de EstimatedDocumentCountOptions como um parâmetro. Se você não especificar nenhuma opção, o driver usará valores padrão.

Você pode definir as seguintes propriedades em um objeto EstimatedDocumentCountOptions:

Propriedade
Descrição

MaxTime

A quantidade máxima de tempo que a query pode executar no servidor.
Padrão: null

O exemplo a seguir estima o número de documentos na coleção students:

var count = _myColl.EstimatedDocumentCount();
Console.WriteLine("Estimated number of documents in the students collection: " + count);

Você pode utilizar o método de construtor Count() para contar o número de documentos em uma aggregation pipeline.

O exemplo a seguir executa as seguintes ações:

  • Especifica um estágio de correspondência para encontrar documentos com um valor FinalGrade maior que 80

  • Conta o número de documentos que correspondem aos critérios

var filter = Builders<Student>
.Filter.Gt(s => s.FinalGrade, 80);
var result = _myColl.Aggregate().Match(filter).Count();
Console.WriteLine("Number of documents with a final grade more than 80: " + result.First().Count);

Para saber mais sobre as operações mencionadas, 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: