La distribución PyMongo contiene herramientas para interactuar con la base de datos MongoDB desde Python. El paquete bson
es una implementación del formato BSON para Python. El paquete pymongo
es un controlador Python nativo para MongoDB. El paquete gridfs
es una implementación de gridfs sobre pymongo
.
PyMongo es compatible con MongoDB 4.0, 4.2, 4.4, 5.0, 6.0, 7.0 y 8.0.
Si tiene problemas, preguntas o comentarios sobre PyMongo, consulte nuestros canales de soporte. No envíe correos electrónicos directamente a ninguno de los desarrolladores de PyMongo con problemas o preguntas; es más probable que obtenga una respuesta en StackOverflow (usando una etiqueta "mongodb").
¿Crees que has encontrado un error? ¿Quieres ver una nueva característica en PyMongo? Abra un caso en nuestra herramienta de gestión de problemas, JIRA:
Los informes de errores en JIRA para todos los proyectos de controladores (es decir, PYTHON, CSHARP, JAVA) y el proyecto Core Server (es decir, SERVER) son públicos .
Incluya toda la siguiente información al abrir un problema:
Pasos detallados para reproducir el problema, incluido el rastreo completo, si es posible.
La versión exacta de Python utilizada, con nivel de parche:
python -c " import sys; print(sys.version) "
python -c " import pymongo; print(pymongo.version); print(pymongo.has_c()) "
El sistema operativo y la versión (por ejemplo, Windows 7, OSX 10.8, ...)
Framework web o biblioteca de red asincrónica utilizada, si la hubiera, con la versión (por ejemplo, Django 1.7, mod_wsgi 4.3.0, gevent 1.0.1, Tornado 4.0.2, ...)
Si ha identificado una vulnerabilidad de seguridad en un controlador o en cualquier otro proyecto de MongoDB, infórmelo de acuerdo con las instrucciones aquí.
PyMongo se puede instalar con pip:
python -m pip install pymongo
También puedes descargar la fuente del proyecto y hacer:
pip install .
No instale el paquete "bson" desde pypi. PyMongo viene con su propio paquete bson; Al ejecutar "pip install bson" se instala un paquete de terceros que es incompatible con PyMongo.
PyMongo es compatible con CPython 3.9+ y PyPy3.9+.
Dependencias requeridas:
La compatibilidad con mongodb+srv://
URI requiere dnspython
Dependencias opcionales:
La autenticación GSSAPI requiere pykerberos en Unix o WinKerberos en Windows. La dependencia correcta se puede instalar automáticamente junto con PyMongo:
python -m pip install " pymongo[gssapi] "
La autenticación MONGODB-AWS requiere pymongo-auth-aws:
python -m pip install " pymongo[aws] "
OCSP (Protocolo de estado de certificado en línea) requiere PyOpenSSL, solicitudes, service_identity y puede requerir certificación:
python -m pip install " pymongo[ocsp] "
La compresión del protocolo de conexión con snappy requiere python-snappy:
python -m pip install " pymongo[snappy] "
La compresión del protocolo de cable con zstandard requiere zstandard:
python -m pip install " pymongo[zstd] "
El cifrado a nivel de campo del lado del cliente requiere pymongocrypt y pymongo-auth-aws:
python -m pip install " pymongo[encryption] "
Puede instalar todas las dependencias automáticamente con el siguiente comando:
python -m pip install " pymongo[gssapi,aws,ocsp,snappy,zstd,encryption] "
Las dependencias adicionales son:
Aquí hay un ejemplo básico (para obtener más información, consulte la sección de ejemplos de los documentos):
>>> import pymongo
>>> client = pymongo.MongoClient( " localhost " , 27017 )
>>> db = client.test
>>> db.name
'test'
>>> db.my_collection
Collection(Database(MongoClient('localhost', 27017), 'test'), 'my_collection')
>>> db.my_collection.insert_one({ " x " : 10 }).inserted_id
ObjectId('4aba15ebe23f6b53b0000000')
>>> db.my_collection.insert_one({ " x " : 8 }).inserted_id
ObjectId('4aba160ee23f6b543e000000')
>>> db.my_collection.insert_one({ " x " : 11 }).inserted_id
ObjectId('4aba160ee23f6b543e000002')
>>> db.my_collection.find_one()
{'x': 10, '_id': ObjectId('4aba15ebe23f6b53b0000000')}
>>> for item in db.my_collection.find():
... print (item[ " x " ])
...
10
8
11
>>> db.my_collection.create_index( " x " )
'x_1'
>>> for item in db.my_collection.find().sort( " x " , pymongo. ASCENDING ):
... print (item[ " x " ])
...
8
10
11
>>> [item[ " x " ] for item in db.my_collection.find().limit( 2 ).skip( 1 )]
[8, 11]
La documentación está disponible en pymongo.readthedocs.io.
La documentación se puede generar ejecutando pip install hatch; ejecutar hatch doc:build . La documentación generada se puede encontrar en el directorio doc/build/html/
.
La forma más sencilla de ejecutar las pruebas es ejecutar hatch run test:test * en la raíz de la distribución. Por ejemplo,
pip install hatch
hatch run test:test