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.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
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);
Number of documents with a final grade less than 80: 2

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

O tipo de agrupamento de idiomas a ser usado ao classificar os resultados. Consulte a seção Agrupamento desta página para obter mais informações.
Padrão: null

Hint

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

Limit

O número máximo de documentos para contar.
Padrão: 0

MaxTime

A quantidade máxima de tempo que a consulta 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

Especifica a locale Componentes internacionais para Unicode (ICU). Para obter uma lista de localidades suportadas, consulte Localidades de Agrupamento e Parâmetros Padrão no Manual do MongoDB Server .

Se você quiser usar a comparação binária simples, use a Collation.Simple propriedade estática para retornar um Collation objeto com o locale definido "simple" como.
Tipo de dados: string

Locale

caseLevel

(Opcional) Especifica se incluir comparação de caso.

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

- Se strength CollationStrength.Primaryfor, o driver compara caracteres básicos e maiúsculas e minúsculas.
- strength Se CollationStrength.Secondary for, 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, esse argumento será ignorado.

Quando esse argumento false é, o driver não inclui comparação de caso no nível de força Primary Secondaryou.

Tipo de Dados: boolean
Padrão: false

CaseLevel

caseFirst

(Opcional) Especifica a ordem de classificação das diferenças de caso durante as comparações de nível terciário.

Tipo de dados: CollationCaseFirst
padrão: CollationCaseFirst.Off

CaseFirst

strength

(Opcional) Especifica o nível de comparação a ser executado, conforme definido na documentação da ICU.

Tipo de Dados: CollationStrength
Padrão: 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 e 2 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. Como "1" é menor que "2", o driver acha que "10" é 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

(Opcional) Especifica se o driver considera o espaço em branco e a pontuação como caracteres básicos para fins de comparação.

Tipo de dados: CollationAlterne
padrão: CollationAlternate.NonIgnorable (espaços e pontuação são considerados caracteres básicos)

Alternate

maxVariable

(Opcional) Especifica quais caracteres o driver considera ignoráveis quando o alternate argumento CollationAlternate.Shifted é.

Tipo de Dados: CollationMaxVariable
Padrão: CollationMaxVariable.Punctuation (o driver ignora pontuação e espaços)

MaxVariable

normalization

(Opcional) Especifica se o driver normaliza o texto conforme necessário.

A maioria dos textos não exige normalização. Para obter mais informações sobre normalização, consulte a documentação da ICU.

Tipo de dados: boolean
Padrão: false

Normalization

backwards

(Opcional) Especifica se as strings contendo diacríticos são classificadas 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 consulta 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);
Estimated number of documents in the students collection: 6

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);
Number of documents with a final grade more than 80: 4

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: