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 a utilizar la librería PHP de MongoDB para recuperar un conteo exacto y estimado de la cantidad de documentos en una colección. Los siguientes métodos cuentan los documentos en una colección:

  • MongoDB\Collection::countDocuments(): Devuelve el número exacto de documentos que coinciden con un filtro de query o que existen en una colección

  • MongoDB\Collection::estimatedDocumentCount()Devuelve el número estimado de documentos en una colección.

Los ejemplos de esta guía utilizan la colección companies en la base de datos sample_training de los conjuntos de datos de muestra de Atlas. Para acceder a esta colección desde tu aplicación PHP, instancia un MongoDB\Client que se conecte a un clúster Atlas y asigna el siguiente valor a tu variable $collection:

$collection = $client->sample_training->companies;

Para saber cómo crear una implementación gratuita de MongoDB y cargar los conjuntos de datos de ejemplo, consulta la guía MongoDB Primeros Pasos.

Utiliza el método MongoDB\Collection::countDocuments() para contar la cantidad de documentos en una colección. Para contar la cantidad de documentos que cumplen con criterios de búsqueda específicos, pasa un filtro de query al método countDocuments().

Para obtener más información sobre cómo especificar una query, consulta la guía Especificar una query.

Para devolver un recuento de todos los documentos en la colección, pasa un arreglo de filtro de query vacío al método countDocuments(), como se muestra en el siguiente ejemplo:

$result = $collection->countDocuments([]);
echo 'Number of documents: ', $result;
Number of documents: 9500

Para devolver un recuento de documentos que coinciden con criterios de búsqueda específicos, pasa un filtro de query al método countDocuments().

El siguiente ejemplo cuenta el número de documentos en los que el valor del campo founded_year es 2010:

$result = $collection->countDocuments(['founded_year' => 2010]);
echo 'Number of companies founded in 2010: ', $result;
Number of companies founded in 2010: 33

Puedes modificar el comportamiento del método countDocuments() pasando un arreglo que especifique valores de opciones. La siguiente tabla describe algunas opciones que puedes configurar para personalizar la operación de conteo:

Opción
Descripción

collation

La intercalación que se utilizará para la operación. Para aprender más, consulte la sección intercalación de esta página.
Tipo: array|object

hint

El índice que se utilizará para la operación.
Tipo: string|array|object

comment

El comentario que se va a adjuntar a la operación.
Tipo: cualquier tipo de BSON válido

limit

El número máximo de documentos que se deben contar. Este valor debe ser un número entero positivo.
Tipo: integer

maxTimeMS

La cantidad máxima de tiempo en milisegundos que la operación puede ejecutar.
Tipo: integer

skip

El número de documentos que se deben omitir antes de contar documentos.
Tipo: integer

readPreference

La preferencia de lectura que se utilizará para la operación. Para aprender más, consulta Preferencia de lectura en el manual del servidor.
Tipo: MongoDB\Driver\ReadPreference

El siguiente ejemplo utiliza el método countDocuments() para contar el número de documentos en los que el campo number_of_employees tiene el valor 50 e instruye a la operación a contar un máximo de 100 resultados:

$result = $collection->countDocuments(
['number_of_employees' => 50],
['limit' => 100],
);
echo 'Number of companies with 50 employees: ', $result;
Number of companies with 50 employees: 100

Para especificar una intercalación para tu operación, pasa un parámetro arreglo $options que establezca la opción collation en el método de la operación. Asigna la opción collation a un arreglo que configure las reglas de intercalación.

La siguiente tabla describe los campos que se pueden configurar para la intercalación:

Campo
Descripción

locale

(Obligatorio) 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.

Tipo de dato: string

caseLevel

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

Cuando se establece en true, el comportamiento de comparación depende del valor del campo strength:

- Si strength es 1, la librería PHP compara los caracteres base
y las mayúsculas y minúsculas.

- Si strength es 2, la librería PHP compara los caracteres base,
los signos diacríticos, otras diferencias secundarias y las mayúsculas y minúsculas.

- Si strength es cualquier otro valor, este campo se ignora.

Cuando se establece en false, la librería PHP no incluye la comparación de mayúsculas y minúsculas en el nivel de intensidad 1 o 2.

Tipo de dato: bool
Por defecto: false

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: string
Por defecto: "off"

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: int
Por defecto: 3

numericOrdering

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

Si se establece en true, la librería PHP compara las strings numéricas como números. Por ejemplo, al comparar las strings "10" y "2", la librería utiliza los valores numéricos de las strings y trata "10" como mayor que "2".

Si se establece en false, la librería PHP compara las strings numéricas como strings. Por ejemplo, al comparar las strings "10" y "2", la librería compara un carácter a la vez y trata "10" como menor que "2".

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

Tipo de dato: bool
Por defecto: false

alternate

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

Tipo de dato: string
Por defecto: "non-ignorable"

maxVariable

(Opcional) Especifica qué caracteres considera la librería ignorables cuando el campo alternate se establece en "shifted".

Tipo de dato: string
Por defecto: "punct"

backwards

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

Tipo de dato: bool
Por defecto: false

Para obtener más información sobre la intercalación y los posibles valores de cada campo, consulta la entrada Collation en el manual del servidor de MongoDB.

Puede recuperar una estimación de la cantidad de documentos en una colección llamando al método MongoDB\Collection::estimatedDocumentCount(). El método estima la cantidad de documentos en función de los metadatos de la colección, lo que podría ser más rápido que realizar un recuento exacto.

El siguiente ejemplo estima el número de documentos en una colección:

$result = $collection->estimatedDocumentCount();
echo 'Estimated number of documents: ', $result;
Estimated number of documents: 9500

Puede modificar el comportamiento del método estimatedDocumentCount() al pasar un arreglo que especifique valores de opción como parámetro. La siguiente tabla describe las opciones que puedes establecer en el arreglo:

Opción
Descripción

comment

El comentario que se va a adjuntar a la operación.
Tipo: cualquier tipo de BSON válido

maxTimeMS

La cantidad máxima de tiempo en milisegundos que la operación puede ejecutar.
Tipo: integer

readConcern

El nivel de consistencia de lectura que se utilizará para la operación. Para aprender más información, consulta Nivel de consistencia de lectura en el manual del servidor.
Tipo: MongoDB\Driver\ReadConcern

readPreference

La preferencia de lectura que se utilizará para la operación. Para aprender más, consulta Preferencia de lectura en el manual del servidor.
Tipo: MongoDB\Driver\ReadPreference

session

La sesión de cliente para asociar con la operación.
Tipo: MongoDB\Driver\Session

El siguiente ejemplo usa el método estimatedDocumentCount() para devolver una estimación del número de documentos en la colección y establece un tiempo de espera de 1000 milisegundos en la operación:

$result = $collection->estimatedDocumentCount(['maxTimeMS' => 1000]);
echo 'Estimated number of documents: ', $result;
Estimated number of documents: 9500

Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: