Add exercises 27
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
parent
6fb5471334
commit
a0d26af9ed
@ -0,0 +1,29 @@
|
||||
"""
|
||||
Conection
|
||||
"""
|
||||
|
||||
from pymongo.mongo_client import MongoClient
|
||||
from pymongo.server_api import ServerApi
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
# variables .env
|
||||
mongopass = os.getenv('mongopass')
|
||||
mongouser = os.getenv('mongouser')
|
||||
mongoname = os.getenv('mongoname')
|
||||
|
||||
uri = "mongodb+srv://" + \
|
||||
mongouser + ":" + \
|
||||
mongopass + "@" + \
|
||||
mongoname + ".m697hfm.mongodb.net/?retryWrites=true&w=majority"
|
||||
|
||||
# Create a new client and connect to the server
|
||||
client = MongoClient(uri, server_api=ServerApi('1'))
|
||||
|
||||
# Send a ping to confirm a successful connection
|
||||
try:
|
||||
client.admin.command('ping')
|
||||
print("Se envió un ping a su deploy. ¡Se ha conectado correctamente a MongoDB!")
|
||||
except Exception as e:
|
||||
print(e)
|
@ -0,0 +1,30 @@
|
||||
"""
|
||||
Conectar la aplicación flask a la base de datos MongoDB
|
||||
"""
|
||||
|
||||
from pymongo.mongo_client import MongoClient
|
||||
from pymongo.server_api import ServerApi
|
||||
from flask import Flask, render_template
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
# variables .env
|
||||
mongopass = os.getenv('mongopass')
|
||||
mongouser = os.getenv('mongouser')
|
||||
mongoname = os.getenv('mongoname')
|
||||
|
||||
uri = "mongodb+srv://" + \
|
||||
mongouser + ":" + \
|
||||
mongopass + "@" + \
|
||||
mongoname + ".m697hfm.mongodb.net/?retryWrites=true&w=majority"
|
||||
|
||||
|
||||
client = MongoClient(uri, server_api=ServerApi('1'))
|
||||
|
||||
print(client.list_database_names())
|
||||
|
||||
app = Flask(__name__)
|
||||
if __name__ == '__main__':
|
||||
port = int(os.environ.get("PORT", 5000))
|
||||
app.run(debug=True, host='0.0.0.0', port=port)
|
@ -0,0 +1,40 @@
|
||||
"""
|
||||
Crear una base de datos y una colección
|
||||
"""
|
||||
|
||||
from pymongo.mongo_client import MongoClient
|
||||
from pymongo.server_api import ServerApi
|
||||
from flask import Flask, render_template
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
# variables .env
|
||||
mongopass = os.getenv('mongopass')
|
||||
mongouser = os.getenv('mongouser')
|
||||
mongoname = os.getenv('mongoname')
|
||||
|
||||
uri = "mongodb+srv://" + \
|
||||
mongouser + ":" + \
|
||||
mongopass + "@" + \
|
||||
mongoname + ".m697hfm.mongodb.net/?retryWrites=true&w=majority"
|
||||
|
||||
client = MongoClient(uri, server_api=ServerApi('1'))
|
||||
|
||||
# Creating database
|
||||
db = client.pruebas_mongodb
|
||||
|
||||
# Creating students collection and inserting a document
|
||||
db.students.insert_one({
|
||||
'name': 'manuel',
|
||||
'country': 'Angola',
|
||||
'city': 'Soria',
|
||||
'age': 40
|
||||
})
|
||||
|
||||
print(client.list_database_names())
|
||||
|
||||
app = Flask(__name__)
|
||||
if __name__ == '__main__':
|
||||
port = int(os.environ.get("PORT", 5000))
|
||||
app.run(debug=True, host='0.0.0.0', port=port)
|
@ -0,0 +1,41 @@
|
||||
"""
|
||||
Insertar varios documentos en una colección
|
||||
"""
|
||||
|
||||
from pymongo.mongo_client import MongoClient
|
||||
from pymongo.server_api import ServerApi
|
||||
from flask import Flask, render_template
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
# variables .env
|
||||
mongopass = os.getenv('mongopass')
|
||||
mongouser = os.getenv('mongouser')
|
||||
mongoname = os.getenv('mongoname')
|
||||
|
||||
uri = "mongodb+srv://" + \
|
||||
mongouser + ":" + \
|
||||
mongopass + "@" + \
|
||||
mongoname + ".m697hfm.mongodb.net/?retryWrites=true&w=majority"
|
||||
|
||||
client = MongoClient(uri, server_api=ServerApi('1'))
|
||||
|
||||
db = client.pruebas_mongodb
|
||||
|
||||
students = [
|
||||
{'name': 'David', 'country': 'UK', 'city': 'London', 'age': 34},
|
||||
{'name': 'John', 'country': 'Sweden', 'city': 'Stockholm', 'age': 28},
|
||||
{'name': 'Sami', 'country': 'Finland', 'city': 'Helsinki', 'age': 25},
|
||||
]
|
||||
|
||||
for student in students:
|
||||
db.students.insert_one(student)
|
||||
|
||||
|
||||
app = Flask(__name__)
|
||||
if __name__ == '__main__':
|
||||
# for deployment we use the environ
|
||||
# to make it work for both production and development
|
||||
port = int(os.environ.get("PORT", 5000))
|
||||
app.run(debug=True, host='0.0.0.0', port=port)
|
55
30-days-of-python/27_Python_con_MongoDB/05_find.py
Normal file
55
30-days-of-python/27_Python_con_MongoDB/05_find.py
Normal file
@ -0,0 +1,55 @@
|
||||
"""
|
||||
Buscar en la base de datos
|
||||
"""
|
||||
|
||||
from pymongo.mongo_client import MongoClient
|
||||
from pymongo.server_api import ServerApi
|
||||
from flask import Flask, render_template
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from bson.objectid import ObjectId
|
||||
|
||||
load_dotenv()
|
||||
# variables .env
|
||||
mongopass = os.getenv('mongopass')
|
||||
mongouser = os.getenv('mongouser')
|
||||
mongoname = os.getenv('mongoname')
|
||||
|
||||
uri = "mongodb+srv://" + \
|
||||
mongouser + ":" + \
|
||||
mongopass + "@" + \
|
||||
mongoname + ".m697hfm.mongodb.net/?retryWrites=true&w=majority"
|
||||
|
||||
client = MongoClient(uri, server_api=ServerApi('1'))
|
||||
|
||||
db = client.pruebas_mongodb
|
||||
|
||||
student = db.students.find_one({'name': 'David'})
|
||||
print(student)
|
||||
|
||||
print("-"*30)
|
||||
|
||||
student_two = db.students.find_one(
|
||||
{'_id': ObjectId('652472bfccdbb81a3f7473e5')})
|
||||
print(student_two)
|
||||
|
||||
print("-"*30)
|
||||
|
||||
students = db.students.find()
|
||||
for student in students:
|
||||
print(student)
|
||||
|
||||
print("-"*30)
|
||||
|
||||
students = db.students.find({}, {"_id": 0, "name": 1, "country": 1})
|
||||
for student in students:
|
||||
print(student)
|
||||
|
||||
print("-"*30)
|
||||
|
||||
app = Flask(__name__)
|
||||
if __name__ == '__main__':
|
||||
# for deployment we use the environ
|
||||
# to make it work for both production and development
|
||||
port = int(os.environ.get("PORT", 5000))
|
||||
app.run(debug=True, host='0.0.0.0', port=port)
|
70
30-days-of-python/27_Python_con_MongoDB/06_find_query.py
Normal file
70
30-days-of-python/27_Python_con_MongoDB/06_find_query.py
Normal file
@ -0,0 +1,70 @@
|
||||
"""
|
||||
Buscar en la base de datos con query
|
||||
"""
|
||||
|
||||
from pymongo.mongo_client import MongoClient
|
||||
from pymongo.server_api import ServerApi
|
||||
from flask import Flask, render_template
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from bson.objectid import ObjectId
|
||||
|
||||
load_dotenv()
|
||||
# variables .env
|
||||
mongopass = os.getenv('mongopass')
|
||||
mongouser = os.getenv('mongouser')
|
||||
mongoname = os.getenv('mongoname')
|
||||
|
||||
uri = "mongodb+srv://" + \
|
||||
mongouser + ":" + \
|
||||
mongopass + "@" + \
|
||||
mongoname + ".m697hfm.mongodb.net/?retryWrites=true&w=majority"
|
||||
|
||||
client = MongoClient(uri, server_api=ServerApi('1'))
|
||||
|
||||
db = client.pruebas_mongodb
|
||||
|
||||
query = {
|
||||
"country": "Finland"
|
||||
}
|
||||
students = db.students.find(query)
|
||||
|
||||
for student in students:
|
||||
print(student)
|
||||
|
||||
|
||||
print("-"*30)
|
||||
|
||||
query = {
|
||||
"city": "Helsinki"
|
||||
}
|
||||
students = db.students.find(query)
|
||||
for student in students:
|
||||
print(student)
|
||||
|
||||
|
||||
print("-"*30)
|
||||
|
||||
query = {
|
||||
"country": "Finland",
|
||||
"city": "Helsinki"
|
||||
}
|
||||
students = db.students.find(query)
|
||||
for student in students:
|
||||
print(student)
|
||||
|
||||
|
||||
print("-"*30)
|
||||
|
||||
query = {"age": {"$gt": 30}}
|
||||
students = db.students.find(query)
|
||||
for student in students:
|
||||
print(student)
|
||||
|
||||
|
||||
app = Flask(__name__)
|
||||
if __name__ == '__main__':
|
||||
# for deployment we use the environ
|
||||
# to make it work for both production and development
|
||||
port = int(os.environ.get("PORT", 5000))
|
||||
app.run(debug=True, host='0.0.0.0', port=port)
|
@ -0,0 +1,71 @@
|
||||
"""
|
||||
Buscar en la base de datos - más opciones
|
||||
"""
|
||||
|
||||
from pymongo.mongo_client import MongoClient
|
||||
from pymongo.server_api import ServerApi
|
||||
from flask import Flask, render_template
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from bson.objectid import ObjectId
|
||||
|
||||
load_dotenv()
|
||||
# variables .env
|
||||
mongopass = os.getenv('mongopass')
|
||||
mongouser = os.getenv('mongouser')
|
||||
mongoname = os.getenv('mongoname')
|
||||
|
||||
uri = "mongodb+srv://" + \
|
||||
mongouser + ":" + \
|
||||
mongopass + "@" + \
|
||||
mongoname + ".m697hfm.mongodb.net/?retryWrites=true&w=majority"
|
||||
|
||||
client = MongoClient(uri, server_api=ServerApi('1'))
|
||||
|
||||
db = client.pruebas_mongodb
|
||||
|
||||
db.students.find().limit(3)
|
||||
|
||||
print("-"*30)
|
||||
|
||||
students = db.students.find().sort('name')
|
||||
for student in students:
|
||||
print(student)
|
||||
|
||||
print("-"*30)
|
||||
|
||||
students = db.students.find().sort('name', -1)
|
||||
for student in students:
|
||||
print(student)
|
||||
|
||||
print("-"*30)
|
||||
|
||||
students = db.students.find().sort('age')
|
||||
for student in students:
|
||||
print(student)
|
||||
|
||||
print("-"*30)
|
||||
|
||||
students = db.students.find().sort('age', -1)
|
||||
for student in students:
|
||||
print(student)
|
||||
|
||||
print("-"*30)
|
||||
|
||||
# New value
|
||||
|
||||
query = {'age': 40}
|
||||
new_value = {'$set': {'age': 38}}
|
||||
|
||||
db.students.update_one(query, new_value)
|
||||
# lets check the result if the age is modified
|
||||
for student in db.students.find():
|
||||
print(student)
|
||||
|
||||
|
||||
app = Flask(__name__)
|
||||
if __name__ == '__main__':
|
||||
# for deployment we use the environ
|
||||
# to make it work for both production and development
|
||||
port = int(os.environ.get("PORT", 5000))
|
||||
app.run(debug=True, host='0.0.0.0', port=port)
|
46
30-days-of-python/27_Python_con_MongoDB/08_delete_doc.py
Normal file
46
30-days-of-python/27_Python_con_MongoDB/08_delete_doc.py
Normal file
@ -0,0 +1,46 @@
|
||||
"""
|
||||
Buscar en la base de datos con query
|
||||
"""
|
||||
|
||||
from pymongo.mongo_client import MongoClient
|
||||
from pymongo.server_api import ServerApi
|
||||
from flask import Flask, render_template
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from bson.objectid import ObjectId
|
||||
|
||||
load_dotenv()
|
||||
# variables .env
|
||||
mongopass = os.getenv('mongopass')
|
||||
mongouser = os.getenv('mongouser')
|
||||
mongoname = os.getenv('mongoname')
|
||||
|
||||
uri = "mongodb+srv://" + \
|
||||
mongouser + ":" + \
|
||||
mongopass + "@" + \
|
||||
mongoname + ".m697hfm.mongodb.net/?retryWrites=true&w=majority"
|
||||
|
||||
client = MongoClient(uri, server_api=ServerApi('1'))
|
||||
|
||||
db = client.pruebas_mongodb
|
||||
|
||||
# Delete one document
|
||||
query = {'name': 'John'}
|
||||
db.students.delete_one(query)
|
||||
|
||||
# Delete many documents
|
||||
for student in db.students.find():
|
||||
print(student)
|
||||
|
||||
for student in db.students.find():
|
||||
print(student)
|
||||
|
||||
# Drop collection
|
||||
db.students.drop()
|
||||
|
||||
app = Flask(__name__)
|
||||
if __name__ == '__main__':
|
||||
# for deployment we use the environ
|
||||
# to make it work for both production and development
|
||||
port = int(os.environ.get("PORT", 5000))
|
||||
app.run(debug=True, host='0.0.0.0', port=port)
|
@ -6,4 +6,15 @@ Documento original en inglés: [Python with MondoDB](https://github.com/Asabeneh
|
||||
|
||||
Repasar [ejemplos](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/27_Day_Python_with_mongodb/27_python_with_mongodb.md)
|
||||
|
||||
### Solución
|
||||
|
||||
[01_proof_conection_mongo.py](01_proof_conection_mongo.py)
|
||||
[02_connect_flask_app.py](02_connect_flask_app.py)
|
||||
[03_create_db_collection.py](03_create_db_collection.py)
|
||||
[04_Insert_many_docs_collection.py](04_Insert_many_docs_collection.py)
|
||||
[05_find.py](05_find.py)
|
||||
[06_find_query.py](06_find_query.py)
|
||||
[07_find_more_opcions.py](07_find_more_opcions.py)
|
||||
[08_delete_doc.py](08_delete_doc.py)
|
||||
|
||||
[<< Day 26](../26_Desarrollo_web_en_Python/README.md) | [Day 28 >>](../28_API/README.md)
|
||||
|
Loading…
Reference in New Issue
Block a user