Skip to content

eocode/Python-Mongo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Curso de mongo db

Código del curso db.py

Postman

  1. Descargar e instalar Postman
  2. La URI de las colecciones de Postman usada para el proyecto está en Postman-platzi-mongo
  3. Importar colección dentro de Postman Instrucciones

Instalar Anaconda

La forma más simple de ejecutar el proyecto es instalando Anaconda.

# navegar hasta el directorio del proyecto
cd platzi-mongo
# crear un nuevo ambiente
conda create --name platzi-mongo
# activar el ambiente 
conda activate platzi-mongo
# para desactivar el ambiente
conda deactivate

Si usas Python frecuentemente y tienes una versión 3.3+ no es necesario que instales Anaconda, crea un ambiente virtual con venv o virtualenv y sigue con el paso de instalar las dependencias.

Instalar dependenias del proyecto

Con el ambiente activado, instalar las dependencias:

pip install -r requirements.txt

Variables de entorno necesarias para ejecutar el proyecto

Asegurate de reemplazar el valor de PLATZI_DB_URI por la URI de tu cluster en MongoDB Atlas

Windows es con set
export FLASK_APP=platzi-api
export FLASK_ENV=development 
export PLATZI_DB_URI="MONGO-URI"

Iniciar el servidor de platzi-mongo

flask run

Comandos utiles y primeros pasos

  1. Servidor online: Mongo Atlas
  2. Descargar mongo: Mongo Download Center
  3. Agregar la variable de entorno
  4. Conectar con la variable de conexión desde https://cloud.mongodb.com

Documentación

  1. PyMongo
  2. Operadores mongo
  3. Agregaciones

Mostrar bases de datos

show dbs

Crear seleccionar una base de datos

use nombredb

Eliminar una base de datos seleccionada

db.dropDatabase()

Mostrar todas las colecciones de la base de datos

show collections
db.getCollectionNames()

Crear una colección (se crea vacia)

db.createCollection("nombre_coleccion")
db.coleccion.drop()

CRUD: Insertar, Mostrar, Actualizar y Eliminar

Inserts (Acepta los datos sin crear una estructura definida y se amolda con el tiempo)

Al hacer cada inserción, mongodb automáticamente generara un ID unico, similar al “auto_increment primary key”, pero este ID es del tipo ObjectId de mongodb y es alfanumérico, muy similar a sha1 o md5. Tambien podemos hacer inserciones mas complejas, todo lo que sea soportado por JSON y por BSON ( el formato de MongoDB, con algunos tipos agregados sobre el original JSON)

db.micoleccion.insert({"nombre":"Agustin","apellido":"Ramos","domicilio":"Tabasco"})
db.micoleccion.insert({"nombre":"Sebastian","apellido":"Ramos","domicilio":"Tabasco"})
db.micoleccion.insert({"nombre":"Leonardo","apellido":"Ramos","domicilio":"Tabasco"})
db.micoleccion.insert({"nombre":"Jennifer","apellido":"Jimenez","domicilio":"Tabasco"})
db.micoleccion.insert({"nombre":"Diana","apellido":"Jimenez","domicilio":"Tabasco"})
db.micoleccion.insert({"nombre":"Jeremias","apellido":"Escalante","domicilio":"Quintana Roo"})

Insertar muchos

db.inventory.insertMany(
[{ _id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] },
{ _id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: [ "B" ] },
{ _id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: [ "A", "B" ] },
{ _id: 4, item: { name: "xy", code: "456" }, qty: 30, tags: [ "B", "A" ] },
{ _id: 5, item: { name: "mn", code: "000" }, qty: 20, tags: [ [ "A", "B" ], "C" ] }]
)

Selects (Muestra todo lo que hay en la colección)

db.micoleccion.find()
db.micoleccion.find({"apellido":"Ramos"})
db.micoleccion.find({"_id":ObjectId("56c9a1ffbb6e73925f958b1a")})

Updates (Actualización de registros)

db.micoleccion.update({"_id":ObjectId("56c9a1ffbb6e73925f958b1a")},{$set:{"apellido":"Ramos Escalante"}})

Delete (Eliminación de registros)

db.micoleccion.remove({"_id":ObjectId("56c9a1ffbb6e73925f958b1a")})
db.micoleccion.remove()

No es necesario finalizar las consultas con “;” (punto y coma) No existe “describe mitabla”: Las colecciones en MongoDB no tienen una “estructura” fijada, por lo que en una colección incluso pueden haber registros que tengan ciertos “campos” y otros no, dicho esto, no se puede hacer una descripción de la colección.

Otros códigos