Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Contabilizar documentos

En esta guía, puedes aprender cómo obtener un recuento exacto y estimado del número de documentos en tu colección.

Los ejemplos de esta guía usan los siguientes documentos en una colección llamada 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 }

La siguiente clase Student modela los documentos en esta colección:

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

Nota

Los documentos de la colección students utilizan la convención de nomenclatura camel case. En los ejemplos de esta guía, se utiliza un ConventionPack para deserializar los campos de la colección en notación Pascal y asignarlos a las propiedades de la clase Student.

Para aprender más sobre la serialización personalizada, consultar Serialización personalizada.

Para contar el número de documentos que coinciden con tu filtro de query, utiliza el método CountDocuments(). Si pasas un filtro de query vacío, este método devuelve el número total de documentos en la colección.

El siguiente ejemplo cuenta el número de documentos donde el valor de finalGrade es 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

Puedes modificar el comportamiento de CountDocuments() pasando un tipo CountOptions como parámetro. Si no especifica ninguna opción, el driver utiliza valores por defecto.

Puedes establecer las siguientes propiedades en un objeto CountOptions:

Propiedad
Descripción

Collation

El tipo de intercalación de lenguaje que se debe usar al clasificar los resultados. Consulte la sección intercalación de esta página para obtener más información.
Por defecto: null

Hint

El índice que se usará para buscar documentos que contar.
Por defecto: null

Limit

El número máximo de documentos que se deben contar.
Por defecto: 0

MaxTime

El tiempo máximo que la query puede ejecutarse en el servidor.
Por defecto: null

Skip

El número de documentos que se deben omitir antes de contar.
Por defecto: 0

Tip

Cuando se utiliza CountDocuments() para devolver el número total de documentos en una colección, MongoDB realiza un escaneo de colección. Puedes evitar un escaneo de colección y mejorar el rendimiento de este método utilizando una sugerencia para aprovechar la funcionalidad incorporada en el índice en el campo _id. Usa esta técnica solo cuando llames a CountDocuments() con un parámetro de query vacío.

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

Para configurar la intercalación para tu operación, crea una instancia de la clase intercalación.

La siguiente tabla describe los parámetros que acepta el constructor Collation. También enumera la propiedad de clase correspondiente que se puede usar para leer el valor de cada configuración.

Parameter
Descripción
Propiedad de clase

locale

Especifica la localización de los componentes internacionales para Unicode (ICU). Para obtener una lista de las configuraciones regionales admitidas, consulte Configuraciones regionales de intercalación y parámetros predeterminados en el manual de MongoDB Server.

Si desea utilizar una comparación binaria simple, utilice la propiedad estática Collation.Simple para devolver un objeto Collation con la configuración regional locale establecida en "simple".
Tipo de dato: string

Locale

caseLevel

(Opcional) Especifica si se debe incluir la comparación de mayúsculas y minúsculas.

Cuando este argumento es true, el comportamiento del driver depende del valor del argumento strength:

- Si strength es CollationStrength.Primary, el driver compara los caracteres base y las mayúsculas y minúsculas.
- Si strength es CollationStrength.Secondary, el driver compara los caracteres base, los diacríticos, otras diferencias secundarias y las mayúsculas y minúsculas.
- Si strength es cualquier otro valor, este argumento se ignora.

Cuando este argumento es false, el driver no incluye la comparación de mayúsculas y minúsculas en el nivel de fuerza Primary o Secondary.

Tipo de dato: boolean
Por defecto: false

CaseLevel

caseFirst

(Opcional) Especifica el orden de clasificación de las diferencias de mayúsculas y minúsculas durante las comparaciones de nivel terciario.

tipo de dato: CollationCaseFirst
por defecto: CollationCaseFirst.Off

CaseFirst

strength

(Opcional) Especifica el nivel de comparación que se debe realizar, tal como se define en la documentación de ICU.

Tipo de dato: CollationStrength
Por defecto: CollationStrength.Tertiary

Strength

numericOrdering

(Opcional) Especifica si el driver compara las strings numéricas como números.

Si este argumento es true, el driver compara las cadenas numéricas como números. Por ejemplo, al comparar las cadenas "10" y "2", el driver trata los valores como 10 y 2, y encuentra que 10 es mayor.

Si este argumento es false o está excluido, el driver compara las cadenas numéricas como cadenas. Por ejemplo, al comparar las cadenas "10" y "2", el driver compara un carácter a la vez. Debido a que "1" es menor que "2", el driver encuentra que "10" es menor que "2".

Para obtener más información, consulte Restricciones de intercalación en el manual de MongoDB Server.

Tipo de dato: boolean
Por defecto: false

NumericOrdering

alternate

(Opcional) Especifica si el driver considera los espacios en blanco y la puntuación como caracteres base a efectos de comparación.

Tipo de dato: CollationAlternate
Por defecto: CollationAlternate.NonIgnorable (los espacios y la puntuación se consideran caracteres base)

Alternate

maxVariable

(Opcional) Especifica qué caracteres considera el controlador como ignorables cuando el alternate argumento CollationAlternate.Shifted es.

Tipo de datos: CollationMaxVariable
Valor predeterminado: CollationMaxVariable.Punctuation (el controlador ignora la puntuación y los espacios)

MaxVariable

normalization

(Opcional) Especifica si el controlador normaliza el texto según sea necesario.

La mayoría del texto no requiere normalización. Para obtener más información sobre la normalización, consulte la documentación de ICU.

Tipo de datos: boolean
Predeterminado: false

Normalization

backwards

(Opcional) Especifica si las strings que contienen diacríticos se ordenan de atrás hacia adelante en la string.

Tipo de dato: boolean
Por defecto: false

Backwards

Más información sobre la intercalación en la página Intercalación en el manual de MongoDB Server.

Para estimar el número total de documentos en tu colección, utiliza el método EstimatedDocumentCount().

Nota

El método EstimatedDocumentCount() es más eficiente que el método CountDocuments() porque utiliza los metadatos de la colección en lugar de escanear toda la colección.

Puedes modificar el comportamiento de EstimatedDocumentCount() pasando un tipo EstimatedDocumentCountOptions como parámetro. Si no especifica ninguna opción, el driver utiliza valores por defecto.

Puedes establecer las siguientes propiedades en un objeto EstimatedDocumentCountOptions:

Propiedad
Descripción

MaxTime

El tiempo máximo que la query puede ejecutarse en el servidor.
Por defecto: null

El siguiente ejemplo estima el número de documentos en la colección 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

Puede utilizar el método de creación Count() para contar el número de documentos en una canalización de agregación.

El siguiente ejemplo realiza las siguientes acciones:

  • Especifica una etapa de coincidencia para encontrar documentos con un valor de FinalGrade mayor que 80

  • Cuenta el número de documentos que cumplen con el criterio

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 aprender más sobre las operaciones mencionadas, consulte las siguientes guías:

Para obtener más información sobre cualquiera de los métodos o tipos discutidos en esta guía, consultar la siguiente documentación de la API: