es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Contar valores de una lista de Python en MongoDB.

Tengo una lista de Python llamada my_list con varios valores :

[“a”, “b”, “c”]

Quiero hacer una consulta a una base de datos MongoDB con PyMongo:
– contar el número de documentos por cada elemento de la lista
– contar el número total de documentos

Puedo hacerlo paso por paso, con un ciclo, de la siguiente manera:

for item in my_list:
db.collection.find({“item”: item}).count_documents()

Sin embargo, me gustaría conocer una forma mejor de hacerlo, específicamente evitando los ciclos.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar el operador $in para consultar MongoDB con PyMongo. Este operador le permite consultar múltiples valores en una sola consulta.

    Por ejemplo, para contar el número de documentos por elemento en la lista, puede usar la siguiente consulta:

    db.collection.find({"item" : {"$in" : mi_lista}}).count_documents()
    

    Esto devolverá el número total de documentos que coincidan con los elementos de la lista. Para obtener el recuento de cada elemento, puede usar el operador $group con $sum:

    db.collection.aggregate([
        {"$match" : {"item" : {"$in" : mi_lista}}},
        {"$group" : {"_id" : "$item", "count" : {"$sum" : 1}}}
    ])
    

    Esto devolverá el recuento de cada elemento en la lista.

Comments are closed.