Requisitos previos: Conceptos básicos de MongoDB Python Primero entenderíamos cómo insertar un documento/entrada en una colección de una base de datos. Luego, trabajaríamos en cómo actualizar un documento existente en MongoDB usando la biblioteca pymongo en python. Los comandos de actualización nos ayudan a actualizar los datos de consulta insertados ya en la colección de la base de datos MongoDB.
Insertar datos
Primero insertaríamos datos en MongoDB.
- Paso 1: establecimiento de la conexión : número de puerto predeterminado: 27017
conn = MongoClient(‘localhost’, port-number)
- Si utiliza el número de puerto predeterminado, es decir, 27017. Método de conexión alternativo:
conn = MongoClient()
- Paso 2: crear una base de datos o cambiar a una base de datos existente:
db = conn.dabasename
- Crear una colección o cambiar a una colección existente:
collection = db.collection_name
- Paso 3: Insertar: para insertar datos, cree un objeto de diccionario e inserte datos en la base de datos. Método utilizado para insertar datos:
insert_one() or insert_many()
- Después de insertar para encontrar los documentos dentro de una colección, usamos el comando find(). El método find() emite una consulta para recuperar datos de una colección en MongoDB. Todas las consultas en MongoDB tienen el alcance de una sola colección. Nota: ‘_id’ es diferente para cada entrada en la colección de la base de datos. Entendamos la inserción de datos con ayuda en el código: –
Python3
# Python code to illustrate # inserting data in MongoDB from pymongo import MongoClient try: conn = MongoClient() print("Connected successfully!!!") except: print("Could not connect to MongoDB") # database db = conn.database # Created or Switched to collection names: my_gfg_collection collection = db.my_gfg_collection emp_rec1 = { "name":"Mr.Geek", "eid":24, "location":"delhi" } emp_rec2 = { "name":"Mr.Shaurya", "eid":14, "location":"delhi" } # Insert Data rec_id1 = collection.insert_one(emp_rec1) rec_id2 = collection.insert_one(emp_rec2) print("Data inserted with record ids",rec_id1," ",rec_id2) # Printing the data inserted cursor = collection.find() for record in cursor: print(record)
- Producción:
Connected successfully!!! Data inserted with record ids {'_id': ObjectId('5a02227b37b8552becf5ed2a'), 'name': 'Mr.Geek', 'eid': 24, 'location': 'delhi'} {'_id': ObjectId('5a02227c37b8552becf5ed2b'), 'name': 'Mr.Shaurya', 'eid': 14, 'location': 'delhi'}
Actualización de datos en MongoD B
Métodos utilizados: update_one() y update_many() Parámetros pasados: + un documento de filtro para hacer coincidir los documentos a actualizar + un documento de actualización para especificar la modificación a realizar + un parámetro upsert opcional Después de insertar datos en MongoDB, actualicemos los datos del empleado con identificación: 24
Python3
# Python code to illustrate # updating data in MongoDB # with Data of employee with id:24 from pymongo import MongoClient try: conn = MongoClient() print("Connected successfully!!!") except: print("Could not connect to MongoDB") # database db = conn.database # Created or Switched to collection names: my_gfg_collection collection = db.my_gfg_collection # update all the employee data whose eid is 24 result = collection.update_many( {"eid":24}, { "$set":{ "name":"Mr.Geeksforgeeks" }, "$currentDate":{"lastModified":True} } ) print("Data updated with id",result) # Print the new record cursor = collection.find() for record in cursor: print(record)
Producción:
Connected successfully!!! Data updated with id {'_id': ObjectId('5a02227b37b8552becf5ed2a'), 'name': 'Mr.Geeksforgeeks', 'eid': 24, 'location': 'delhi', 'lastModified': datetime.datetime(2017, 11, 7, 21, 19, 9, 698000)} {'_id': ObjectId('5a02227c37b8552becf5ed2b'), 'name': 'Mr.Shaurya', 'eid': 14, 'location': 'delhi'}
Para encontrar el número de documentos o entradas en la colección, se actualiza el uso.
print(result.matched_count)
Aquí la salida sería 1.
Publicación traducida automáticamente
Artículo escrito por shaurya uppal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA