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.

¿Cómo puedo encontrar una entrada específica de una colección con MongoDB?

Me estoy desesperando poco a poco por esto. Estoy intentando obtener una entrada muy específica de una base de datos previamente definida. Para esto, he definido mi base de datos:

test = cluster["folder1"]["example"]

Dentro de esto hay keys con un value, que se ve algo así:

Imagen de la base de datos

Ahora quiero usar el método find_one() o find() para encontrar esta entrada. Hay más entradas en la base de datos.

Ya logré recorrer la colección con un bucle y también se muestra la entrada:

def get_key(guild, answer):
    for x in test.find({}, {f"{answer}"}): # El "answer" buscado se define anteriormente por un comando, no es necesario para este asunto
        print(x)

EDICIÓN: Tal vez tengo que mencionar esto: “answer” también puede tener un valor diferente, por ejemplo “quantum” que luego se “asocia” a “Esto es cuántico” o “finger” que se “asocia” con “Esto es un dedo”. Por lo tanto, no puedo usar test.find_one({"test": "FAILUR"}) y necesito encontrar una forma de encontrar el value para la key “answer”.

Se verá así:

{'_id': ObjectId('Eliminado')}
{'_id': ObjectId('Eliminado')}
{'_id': ObjectId('Eliminado'), 'test': 'FAILUR'} # Solo necesito FAILUR

Ahora me gustaría mostrar “FAILUR” y no siempre utilizar un bucle for. ¿Es mucho más fácil y rápido hacer esto con el método find_one()?

Ya intenté:

    print(test.find_one({f"{answer}": f"{answer}"})) # Muestra None
    print(test.find({}, {f"{answer}"})) # Imprime <pymongo.cursor.cursor object="" at="" 0x7fc6d482xxx="">

Además, miré las siguientes publicaciones, pero no llegué a ninguna parte:

https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/
https://docs.mongodb.com/manual/reference/method/db.collection.findOne/

https://stackoverflow.com/questions/25589113/how-to-select-a-single-field-for-all-documents-in-a-mongodb-collection

https://stackoverflow.com/questions/13927295/how-to-read-a-specific-key-value-pair-from-mongodb-collection/13927354

Y muchas más. ¡Gracias de antemano!</pymongo.cursor.cursor>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El método find_one() se puede utilizar para recuperar una entrada específica de la base de datos. Para hacer esto, se puede pasar un objeto de consulta al método que especifique los criterios de búsqueda. En este caso, se desea recuperar el valor para una clave específica, lo cual se puede lograr creando un objeto de consulta con la clave y su valor correspondiente. Aquí tienes un ejemplo:

    result = test.find_one({"answer": answer})
    if result:
        value = result["test"]
        print(value)
    else:
        print("Entrada no encontrada")
    

    En este ejemplo, el objeto de consulta se crea especificando la clave “answer” y su valor como la variable answer pasada a la función. El método find_one() devuelve la primera entrada que cumple los criterios de la consulta, o None si no hay coincidencias. Si se encuentra una coincidencia, se extrae e imprime el valor correspondiente a la clave “test”. Si no se encuentra ninguna coincidencia, se imprime un mensaje indicando que no se encontró la entrada.

Comments are closed.