Saltar al contenido

¿Por qué PyMongo count_documents es más lento que count?

Esta es la contestación más exacta que te podemos compartir, pero obsérvala detenidamente y analiza si se puede adaptar a tu trabajo.

Solución:

No se trata de PyMongo sino de Mongo mismo.

count es una función nativa de Mongo. Realmente no cuenta todos los documentos. Cada vez que inserta o elimina un registro en Mongo, almacena en caché el número total de registros en la colección. Entonces cuando corres countMongo devolverá ese valor almacenado en caché.

count_documents utiliza un objeto de consulta, lo que significa que tiene que recorrer todos los registros para obtener el recuento total. Debido a que no está pasando ningún parámetro, tendrá que ejecutarse en los 60 millones de registros. Por eso es lento.

basado en el comentario de @Stennie

Puede usar la cuenta de documentos estimada () en PyMongo 3.7+ para devolver el conteo rápido basado en los metadatos de la colección. El recuento original () quedó obsoleto porque el comportamiento difería (recuento estimado frente a real) en función de si se proporcionaron los criterios de consulta. La nueva API del controlador es más intencional sobre el resultado

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *