¿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>
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: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étodofind_one()
devuelve la primera entrada que cumple los criterios de la consulta, oNone
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.