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
-