Python MONGODB INSERT DOCUMENT

Un documento en MongoDB es lo mismo que un registro en bases de datos SQL.

Insertar en la colección 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

Inserte un registro en la colección de «clientes»:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["clientes"]

mydict = { "nombre": "Juan", "direccion": "C/ Mayor 1" }

x = mycol.insert_one(mydict)

Devuelve el campo _id

El método insert_one() devuelve un objeto InsertOneResult, que tiene una propiedad, insered_id, que contiene el id del documento insertado.

Ejemplo

Inserte otro registro en la colección de «clientes» y devuelva el valor del campo _id:

mydict = { "nombre": "Carlos", "direccion":  "Calle de Arriba 1" }

x = mycol.insert_one(mydict)

print(x.inserted_id)

Si no especifica un campo _id, MongoDB agregará uno por usted y le asignará una identificación única para cada documento.

En el ejemplo anterior, no se especificó ningún campo _id, por lo que MongoDB asignó un _id único para el registro (documento).


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": "David", "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)

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.

Ejemplo

import pymongo

myclient = pymongo.MongoClient( "mongodb://localhost:27017/")
mydb = myclient[ "myddbb"]
mycol = mydb[ "clientes"]

mylist = [
  {  "id": 1, "nombre":  "Manuel", "direccion":  "C/ Mayor 1"},
  {  "id": 2, "nombre":  "Carlos", "direccion"":  "C/ Arriba 3"},
  {  "id": 3, "nombre":  "Antonio", "direccion":  "C/ Mexico 2"},
  {  "id": 4, "nombre":  "Javi", "direccion":  "C/ República Argentina 15"},
  {  "id": 5, "nombre":  "Jorge", "direccion":  "C/ Serrano 64"},
  {  "id": 6, "nombre":  "David", "direccion":  "C/ Diagonal 12"},
  {  "id": 7, "nombre":  "Ana", "direccion":  "C/ Mayo 3"},
  {  "id": 8, "nombre":  "Enrique", "direccion":  "C/ Samaranch 92"}
]

x = mycol.insert_many(mylist)

#print lista de los id de los archivos que se han insertado:
print(x.inserted_ids)