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

Puede utilizar el MongoDB Kotlin Driver para contar el número de documentos en una colección. Existen dos métodos de instancia en la clase MongoCollection que se pueden llamar para contabilizar el número de documentos en una colección:

  • countDocuments() devuelve un recuento preciso del número de documentos en la colección que coinciden con una query específica. Si especificas un filtro de query vacío, el método devuelve el número total de documentos en la colección.

  • estimatedDocumentCount() devuelve una estimación del número de documentos en la colección según los metadatos de la colección. No se puede especificar una query cuando se utiliza este método.

El método estimatedDocumentCount() devuelve más rápido que el método countDocuments() porque utiliza los metadatos de la colección en lugar de escanear toda la colección. El método countDocuments() devuelve un recuento preciso del número de documentos y admite la especificación de un filtro.

Tip

Cuando utilizas countDocuments() para devolver el número total de documentos en una colección, puedes mejorar el rendimiento evitando un escaneo de la colección. Para hacer esto, usa una sugerencia para aprovechar el índice incorporado en el campo _id. Utiliza esta técnica solo cuando llames a countDocuments() con un parámetro de query vacío, por ejemplo:

val options = CountOptions().hintString("_id_")
val numDocuments = collection.countDocuments(BsonDocument(), options)

Cuando se llama al método countDocuments(), se puede pasar opcionalmente un parámetro filtro de query. No se pueden pasar parámetros cuando se llama a estimatedDocumentCount().

Importante

Problema con Stable API V1 y MongoDB Server

Si usas la Stable API v1 con la opción "strict" y una versión del servidor MongoDB entre 5.0.0 y 5.0.8 inclusive, es posible que las llamadas al método estimatedDocumentCount() generen un error debido a un error en el servidor.

Actualiza el servidor MongoDB 5.0.9 o uno posterior, o establece la opción de "estricto" de la Stable API en false para evitar este problema.

También puedes pasar un parámetro opcional a cualquiera de estos métodos para especificar el comportamiento de la llamada:

Método
Clase de parámetros opcionales
Descripción

countDocuments()

CountOptions

Puede configurar las siguientes opciones:

  • collation(): Establece la intercalación

  • comment()": Establece el comentario

  • hint(): establece el índice a utilizar

  • hintString(): establece el índice a utilizar

  • limit()Limita los documentos para contar

  • skip(): Omite el número especificado de documentos antes de contar

estimatedDocumentCount()

EstimatedDocumentCountOptions

Puedes establecer un comentario usando el método comment().

Ambos métodos devuelven el número de documentos coincidentes como un primitivo Long.

Nota

Este ejemplo se conecta a una instancia de MongoDB mediante un URI de conexión. Para saber más sobre cómo conectarse a su instancia de MongoDB, consulte la guía de conexión.

El siguiente ejemplo estima el número de documentos en la colección movies de la base de datos sample_mflix, y luego devuelve un recuento exacto del número de documentos en la colección movies con Spain en el campo countries:

import com.mongodb.MongoException
import com.mongodb.client.model.Filters
import com.mongodb.kotlin.client.coroutine.MongoClient
import kotlinx.coroutines.runBlocking
data class Movie(val countries: List<String>)
fun main() = runBlocking {
// Replace the uri string with your MongoDB deployment's connection string
val uri = "<connection string uri>"
val mongoClient = MongoClient.create(uri)
val database = mongoClient.getDatabase("sample_mflix")
val collection = database.getCollection<Movie>("movies")
val query = Filters.eq(Movie::countries.name, "Spain")
try {
val estimatedCount = collection.estimatedDocumentCount()
println("Estimated number of documents in the movies collection: $estimatedCount")
val matchingCount = collection.countDocuments(query)
println("Number of movies from Spain: $matchingCount")
} catch (e: MongoException) {
System.err.println("An error occurred: $e")
}
mongoClient.close()
}
Estimated number of documents in the movies collection: 23541
Number of movies from Spain: 755

Para información adicional sobre las clases y métodos mencionados en esta página, consulta la siguiente documentación de API: