Insert Document Python MONGODB
Para insertar un documento en MongoDB utilizando Python, necesitarás utilizar la biblioteca pymongo. Para insertar un registro, o documento cómo se llama en MongoDB, en una colección, usamos el método
insert_one()
. El primer parámetro del método
insert_one()
es un diccionario que contiene los nombres y los valores de cada campo en el documento que desea insertar.
Ejemplo de Insert Document Python MONGODB
Inserte un registro en la colección de "clientes":
Ejemplo
import pymongo
# Establecer una conexión con el servidor MongoDB que se encuentra en localhost y en el puerto 12345
# Si MongoDB se encuentra en otro servidor o en un puerto diferente, es necesario cambiar la dirección y el puerto.
myclient = pymongo.MongoClient("mongodb://localhost:12345/")
# Seleccionar la base de datos llamada "bbdd"
mydb = myclient["bbdd"]
# Seleccionar la colección llamada "clientes" dentro de la base de datos
mycol = mydb["clientes"]
# Crear un diccionario llamado "mydict" con los datos que se desean insertar en la colección
# En este caso, el diccionario contiene dos campos: "nombre" y "direccion"
mydict = { "nombre": "Juan", # Insertar el documento "mydict" en la colección "clientes" utilizando el método insert_one()
# El método insert_one() devuelve un objeto que contiene el ID del documento recién insertado.
class="string">"direccion": "C/ Mayor 1" }
x = mycol.insert_one(mydict)
- Este código se conecta a una base de datos MongoDB que se encuentra en localhost y en el puerto 12345. Luego, selecciona una base de datos llamada "bbdd" y una colección llamada "clientes".
- Después, crea un diccionario llamado "mydict" con dos campos: "nombre" y "direccion".
- Finalmente, inserta este documento en la colección "clientes" utilizando el método insert_one() y guarda el resultado en la variable "x".
- El resultado contiene el ID del documento recién insertado en la base de datos.
Devuelve el campo _id
El método
insert_one()
de MongoDB devuelve un objeto InsertOneResult, y puedes acceder al
inserted_id
para obtener el ID del documento recién insertado. Aquí tienes el código actualizado con el
print()
para mostrar el ID del documento:
Ejemplo
"import" pymongo
myclient = pymongo.MongoClient("mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["clientes"]
mydict = { "nombre": "Carlos", "direccion": "Calle de Arriba 1" }
x = mycol.insert_one(mydict)
print(x.inserted_id)
- Cuando ejecutes este código, mostrará el ID del documento recién insertado en la colección "clientes" de la base de datos "bbdd" en MongoDB.
- Cada documento en MongoDB tiene un campo especial llamado "_id" que contiene su ID único.
-
Al insertar un documento sin proporcionar un ID explícito, MongoDB generará automáticamente un ID único para el nuevo documento y lo asignará al campo "_id". El
inserted_idque se imprime es el mismo valor que tiene el campo "_id" en el documento insertado.
Insertar múltiples documentos
Para insertar varios documentos en una colección en MongoDB, usamos el método
insert_many()
. El primer parámetro del método
insert_many()
es una lista que contiene diccionarios con los datos que desea insertar:
Ejemplo
import pymongo
myclient = pymongo.MongoClient( "mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["Clientes"]
mylist = [
{ "nombre": "Manuel", "direccion": "C/ Mayor 1"},
{ "nombre": "Carlos", "direccion": "C/ Ariiba 3"},
{ "nombre": "Enrique", "direccion": "C/ Mexico 2""},
{ "nombre": "Antonio", "direccion": "C/ República Argentina"},
{ "nombre": "Javi", "direccion": "C/ Serrano 100"},
{ "nombre": "Jorge", "direccion": "C/ Diagonal 1"},
{ "nombre": "Diego", "direccion": "C/ Mayo 3"},
{ "nombre": "Ana", "direccion": "C/ Samaranch 14"}
]
x = mycol.insert_many(mylist)
#print lista de los valores id de los documentos insertados:
print(x.inserted_ids)
-
Cuando ejecutas este código, insertará los documentos de la lista
mylisten la colección "Clientes" de la base de datos "bbdd" en MongoDB. - Después, imprimirá la lista de los valores de ID de los documentos insertados, que son los mismos valores que tienen el campo "_id" en cada uno de los documentos recién insertados.
El método
insert_many()
devuelve un objeto InsertManyResult, que tiene una propiedad, insered_ids, que contiene los identificadores de los documentos insertados.
Insertar múltiples documentos, con identificadores especificados
Si no desea que MongoDB le asigne identificadores únicos a su documento, puede especificar el campo
_id
cuando inserte el (los) documento (s). Recuerda que los valores tienen que ser únicos. Dos documentos no pueden tener el mismo
_id
.
el campo
_id
se utiliza como identificador único para cada documento en una colección. Si deseas especificar tus propios identificadores únicos en lugar de que MongoDB los genere automáticamente, simplemente incluye el campo
_id
en tus documentos con los valores que deseas utilizar como identificadores.
En el ejemplo se especifica el campo
_id
para cada documento en la lista
mylist
antes de insertarlos en la colección "clientes":
Ejemplo
x = mycol.insert_one(mydict)
Con este código, los documentos se insertarán en la colección
"clientes"
con los identificadores únicos que has especificado en el campo
id
de cada documento. MongoDB asegurará que los valores del campo
_id
sean únicos en la colección y que no haya documentos con el mismo identificador.
Practica Insert Document Python MONGODB en el editor
Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.
Ejercicio: Mongodb Insert Document
Practica mongodb insert document en el editor interactivo.
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.