Primeros pasos con PyMongo

Hola Mundo

PyMongo es un controlador de Python nativo para MongoDB.

Instalar PyMongo

pip install pymongo

Crear una conexión

Utilice MongoClient para crear una conexión. MongoClient tiene como valor predeterminado la instancia de MongoDB que se ejecuta en localhost:27017 si no se especifica.

from pymongo import MongoClient
client = MongoClient() 

Acceder a los objetos de la base de datos

La clase Base de datos de PyMongo representa la construcción de la base de datos en MongoDB. Las bases de datos contienen grupos de colecciones relacionadas lógicamente.

db = client.mydb

Acceder a los objetos de la colección

La clase Colección de PyMongo representa la construcción de colección en MongoDB. Las colecciones contienen grupos de documentos relacionados.

col = db.mycollection

MongoDB crea nuevas bases de datos y colecciones implícitamente en el primer uso.

Operación CRUD básica

MongoDB almacena registros de datos como BSON documentos. BSON es la representación binaria de JSON.

$ python
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> col = client.mydb.test

Crear

Insertar un solo documento insertar_uno(documento)

>>> result = col.insert_one({'x':1})
>>> result.inserted_id
ObjectId('583c16b9dc32d44b6e93cd9b')

Insertar múltiples documentos insert_many(documents)

>>> result = col.insert_many([{'x': 2}, {'x': 3}])
>>> result.inserted_ids
[ObjectId('583c17e7dc32d44b6e93cd9c'), ObjectId('583c17e7dc32d44b6e93cd9d')]

Reemplace un único documento que coincida con el filtro replace_one(filter, replace, upsert=False). (para insertar un nuevo documento si no existe un documento coincidente, use upsert=True)

>>> result = col.replace_one({'x': 1}, {'y': 1})
>>> result.matched_count
1
>>> result.modified_count
1

Actualizar

Actualizar un único documento que coincida con el filtro update_one(filter, update, upsert=False)

>>> result = col.update_one({'x': 1}, {'x': 3})

Actualice uno o más documentos que coincidan con el filtro update_many(filter, update, upsert=False)

>>> result = col.update_many({'x': 1}, {'x': 3})

Leer

Consulta la base de datos find(filter=Ninguno, proyección=Ninguno, skip=0, limit=0, no_cursor_timeout=False). El argumento filtro es un documento prototipo que todos los resultados deben coincidir.

>>> result = col.find({'x': 1})

Obtenga un único documento de la base de datos find_one(filter=None)

>>> result = col.find_one()

Consulta con proyección

query={'x':1}
projection={'_id':0, 'x':1} # show x but not show _id
result=col.find(query,projection)

Borrar

Eliminar un solo documento que coincida con el filtro delete_one(filter)

>>> result = col.delete_one({'x': 1})
>>> result.deleted_count
1

Elimine uno o más documentos que coincidan con el filtro delete_many(filter)

>>> result = col.delete_many({'x': 1})
>>> result.deleted_count
3

PyMongo también proporciona la funcionalidad find_one_and_delete(), find_one_and_update() y find_one_and_replace().

Instalación o configuración

Instrucciones detalladas sobre cómo configurar o instalar pymongo.

  • Instalación con Pip

    • To install pymongo for the first time:

      pip install pymongo

    • Installing a specific version of pymongo:

      Where X.X.X is the version to be installed

      pip install pymongo==X.X.X

    • Upgrading existing pymongo:

      pip install --upgrade pymongo

  • Instalación con easy_install

    • To install pymongo for the first time:

      python -m easy_install pymongo

    • Upgrading existing pymongo:

      python -m easy_install -U pymongo