Overview
Esta página contiene ejemplos de código que muestran cómo conectar la aplicación de Python a MongoDB con varias configuraciones.
Tip
Para obtener más información sobre las opciones de conexión de esta página, consulta el enlace proporcionado en cada sección.
Para usar un ejemplo de conexión de esta página, copie el ejemplo de código en la aplicación de muestra o en su propia aplicación. Asegúrese de reemplazar todos los marcadores de posición en los ejemplos de código, como <hostname>, con los valores relevantes para su implementación de MongoDB.
Aplicación de muestra
Puede utilizar la siguiente aplicación de muestra para probar los ejemplos de código en esta página. Para usar la aplicación de muestra, siga los siguientes pasos:
Asegúrate de que tienes PyMongo instalado.
Copia el siguiente código y pégalo en un nuevo archivo
.py.Copia un ejemplo de código de esta página y pégalo en las líneas especificadas del archivo.
Selecciona la pestaña Synchronous o Asynchronous para ver el código correspondiente:
1 import pymongo 2 from pymongo import MongoClient 3 4 try: 5 uri = "<connection string URI>" 6 client = MongoClient(uri) 7 8 database = client["<database name>"] 9 collection = database["<collection name>"] 10 11 # start example code here 12 13 # end example code here 14 15 client.close() 16 17 except Exception as e: 18 raise Exception( 19 "The following error occurred: ", e)
1 import asyncio 2 import pymongo 3 from pymongo import AsyncMongoClient 4 5 async def main(): 6 try: 7 uri = "<connection string URI>" 8 client = AsyncMongoClient(uri) 9 10 database = client["<database name>"] 11 collection = database["<collection name>"] 12 13 # start example code here 14 15 # end example code here 16 17 await client.close() 18 19 except Exception as e: 20 raise Exception( 21 "The following error occurred: ", e) 22 23 asyncio.run(main())
Inserte uno
result = collection.insert_one({ "<field name>" : "<value>" }) print(result.acknowledged)
result = await collection.insert_one({ "<field name>" : "<value>" }) print(result.acknowledged)
Para obtener más información sobre el método insert_one(), consultar la guía Insertar Documentos.
Insertar múltiples
document_list = [ { "<field name>" : "<value>" }, { "<field name>" : "<value>" } ] result = collection.insert_many(document_list) print(result.acknowledged)
document_list = [ { "<field name>" : "<value>" }, { "<field name>" : "<value>" } ] result = await collection.insert_many(document_list) print(result.acknowledged)
Para obtener más información sobre el método insert_many(), consultar la guía Insertar Documentos.
Actualiza uno
query_filter = { "<field to match>" : "<value to match>" } update_operation = { "$set" : { "<field name>" : "<value>" } } result = collection.update_one(query_filter, update_operation) print(result.modified_count)
query_filter = { "<field to match>" : "<value to match>" } update_operation = { "$set" : { "<field name>" : "<value>" } } result = await collection.update_one(query_filter, update_operation) print(result.modified_count)
Para obtener más información sobre el método update_one(), consulte la Guía para actualizar documentos.
Actualiza múltiples
query_filter = { "<field to match>" : "<value to match>" } update_operation = { "$set" : { "<field name>" : "<value>" } } result = collection.update_many(query_filter, update_operation) print(result.modified_count)
query_filter = { "<field to match>" : "<value to match>" } update_operation = { "$set" : { "<field name>" : "<value>" } } result = await collection.update_many(query_filter, update_operation) print(result.modified_count)
Para obtener más información sobre el método update_many(), consulte la Guía para actualizar documentos.
Reemplace uno
query_filter = { "<field to match>" : "<value to match>" } replace_document = { "<new document field name>" : "<new document value>" } result = collection.replace_one(query_filter, replace_document) print(result.modified_count)
query_filter = { "<field to match>" : "<value to match>" } replace_document = { "<new document field name>" : "<new document value>" } result = await collection.replace_one(query_filter, replace_document) print(result.modified_count)
Para aprender más sobre el método replace_one(), consulta la guía Reemplazar Documentos.
deleteOne
query_filter = { "<field to match>" : "<value to match>" } result = collection.delete_one(query_filter) print(result.deleted_count)
query_filter = { "<field to match>" : "<value to match>" } result = await collection.delete_one(query_filter) print(result.deleted_count)
Para obtener más información sobre el método delete_one(), consulta la guía Borrar Documentos.
Borrar múltiples
query_filter = { "<field to match>" : "<value to match>" } result = collection.delete_many(query_filter) print(result.deleted_count)
query_filter = { "<field to match>" : "<value to match>" } result = await collection.delete_many(query_filter) print(result.deleted_count)
Para obtener más información sobre el método delete_many(), consulta la guía Borrar Documentos.
Guardado masivo
operations = [ pymongo.InsertOne( { "<field name>" : "<value>" } ), pymongo.UpdateMany( { "<field to match>" : "<value to match>" }, { "$set" : { "<field name>" : "<value>" }}, ), pymongo.DeleteOne( { "<field to match>" : "<value to match>" } ), ] result = collection.bulk_write(operations) print(result)
operations = [ pymongo.InsertOne( { "<field name>" : "<value>" } ), pymongo.UpdateMany( { "<field to match>" : "<value to match>" }, { "$set" : { "<field name>" : "<value>" }}, ), pymongo.DeleteOne( { "<field to match>" : "<value to match>" } ), ] result = await collection.bulk_write(operations) print(result)
Para aprender más sobre el método bulk_write(), consulta la Guía de escritura masiva.
Encontrar uno
results = collection.find_one({ "<field name>" : "<value>" }) print(results)
results = await collection.find_one({ "<field name>" : "<value>" }) print(results)
Para obtener más información sobre el método find_one(), consulta encontrar un documento en la guía de Recuperar datos.
Encontrar varios
results = collection.find({ "<field name>" : "<value>" }) for document in results: print(document)
results = collection.find({ "<field name>" : "<value>" }) async for document in results: print(document)
Para aprender más sobre el método find(), consulta Encontrar varios documentos en la guía de Recuperar de datos.
Contar documentos en una colección
count = collection.count_documents({}) print(count)
count = await collection.count_documents({}) print(count)
Para aprender más sobre el método count_documents(), consulte la guía Recuperar un recuento preciso.
Contar documentos devueltos de una query
count = collection.count_documents({ "<field name>": "<value>" }) print(count)
count = await collection.count_documents({ "<field name>": "<value>" }) print(count)
Para aprender más sobre el método count_documents(), consulte la guía Recuperar un recuento preciso.
Recuento estimado de documentos
count = collection.estimated_document_count() print(count)
count = await collection.estimated_document_count() print(count)
Para obtener más información sobre el método estimated_document_count(), consulta la guía Recuperar un recuento estimado.
Retrieve Distinct Values
results = collection.distinct("<field name>") for document in results: print(document)
results = await collection.distinct("<field name>") for document in results: print(document)
Para obtener más información sobre el método distinct(), consulta la guía Recuperar Valores Únicos de Campo.