Prerrequisito: MongoDB: una introducción
MongoDB es una base de datos multiplataforma orientada a documentos que funciona con el concepto de colecciones y documentos. MongoDB ofrece alta velocidad, alta disponibilidad y alta escalabilidad.
La siguiente pregunta que surge en la mente de la gente es «¿Por qué MongoDB»?
Razones para optar por MongoDB:
- Es compatible con la estructura de datos jerárquicos (consulte los documentos para obtener más detalles)
- Admite arrays asociadas como Diccionarios en Python.
- Controladores de Python integrados para conectar la aplicación de Python con la base de datos. Ejemplo: PyMongo
- Está diseñado para Big Data.
- La implementación de MongoDB es muy fácil.
MongoDB frente a RDBMS
Guía de instalación de MongoDB y PyMongo
- Primero inicie MongoDB desde el símbolo del sistema usando:
Método 1:mongod
o
Método 2:net start MongoDB
Ver el número de puerto predeterminado es 27017 (última línea en la imagen de arriba).
Python tiene una biblioteca nativa para MongoDB. El nombre de la biblioteca disponible es «PyMongo». Para importar esto, ejecute el siguiente comando:from
pymongo
import
MongoClient
- Crear una conexión: lo primero después de importar el módulo es crear un MongoClient.
from
pymongo
import
MongoClient
client
=
MongoClient()
Después de esto, conéctese al host y puerto predeterminados. La conexión al host y al puerto se realiza explícitamente. El siguiente comando se usa para conectar MongoClient en el host local que se ejecuta en el número de puerto 27017.
client
=
MongoClient(‘host’, port_number)
example:
-
client
=
MongoClient(‘localhost’,
27017
)
También se puede hacer usando el siguiente comando:
client
=
MongoClient(“mongodb:
/
/
localhost:
27017
/
”)
- Acceder a los objetos de la base de datos: para crear una base de datos o cambiar a una base de datos existente, usamos:
Método 1: estilo diccionariomydatabase
=
client[‘name_of_the_database’]
Método2:
mydatabase
=
client.name_of_the_database
Si no existe una base de datos creada previamente con este nombre, MongoDB creará implícitamente una para el usuario.
Nota: el nombre del relleno de la base de datos no tolerará ningún guión (-) utilizado en él. Los nombres como my-Table generarán un error. Por lo tanto, se permite el uso de guiones bajos en el nombre. - Acceso a la colección: las colecciones son equivalentes a las tablas en RDBMS. Accedemos a una colección en PyMongo de la misma manera que accedemos a las Tablas en el RDBMS. Para acceder a la tabla, diga el nombre de la tabla «myTable» de la base de datos, diga «mydatabase».
Método 1:mycollection
=
mydatabase[‘myTable’]
Método 2:
mycollection
=
mydatabase.myTable
>MongoDB almacena la base de datos en forma de diccionarios como se muestra:>
record = { title: 'MongoDB and Python', description: 'MongoDB is no SQL database', tags: ['mongodb', 'database', 'NoSQL'], viewers: 104 }
‘_id’ es la clave especial que se agrega automáticamente si el programador olvida agregarla explícitamente. _id es el número hexadecimal de 12 bytes que asegura la unicidad de cada documento insertado.
- Insertar los datos dentro de una colección:
Métodos utilizados:insert_one() or insert_many()
Normalmente usamos el documento del método insert_one() en nuestras colecciones. Digamos que deseamos ingresar los datos nombrados como registro en ‘myTable’ de ‘mydatabase’.
rec
=
myTable.insert_one(record)
Todo el código tiene este aspecto cuando es necesario implementarlo.
# importing module
from
pymongo
import
MongoClient
# creation of MongoClient
client
=
MongoClient()
# Connect with the portnumber and host
client
=
MongoClient(“mongodb:
/
/
localhost:
27017
/
”)
# Access database
mydatabase
=
client[‘name_of_the_database’]
# Access collection of the database
mycollection
=
mydatabase[‘myTable’]
# dictionary to be added in the database
rec
=
{
title:
'MongoDB and Python'
,
description:
'MongoDB is no SQL database'
,
tags: [
'mongodb'
,
'database'
,
'NoSQL'
],
viewers:
104
}
# inserting the data in the database
rec
=
mydatabase.myTable.insert(record)
- Consultas en MongoDB: existen ciertas funciones de consulta que se utilizan para filtrar los datos en la base de datos. Las dos funciones más utilizadas son:
- find()
find() se utiliza para obtener más de un único documento como resultado de una consulta.for
i
in
mydatabase.myTable.find({title:
'MongoDB and Python'
})
print
(i)
Esto generará todos los documentos en myTable de mydatabase cuyo título sea ‘MongoDB and Python’.
- count()
count() se utiliza para obtener el número de documentos con el nombre que se pasa en los parámetros.print
(mydatabase.myTable.count({title:
'MongoDB and Python'
}))
Esto generará la cantidad de documentos en myTable de mydatabase cuyo título es ‘MongoDB y Python’.
Estas dos funciones de consulta se pueden sumar para dar el resultado más filtrado, como se muestra a continuación.
print
(mydatabase.myTable.find({title:
'MongoDB and Python'
}).count())
- find()
- Para imprimir todos los documentos/entradas dentro de ‘myTable’ de la base de datos ‘mydatabase’: use el siguiente código:
from
pymongo
import
MongoClient
try
:
conn
=
MongoClient()
print
(
"Connected successfully!!!"
)
except
:
print
(
"Could not connect to MongoDB"
)
# database name: mydatabase
db
=
conn.mydatabase
# Created or Switched to collection names: myTable
collection
=
db.myTable
# To find() all the entries inside collection name 'myTable'
cursor
=
collection.find()
for
record
in
cursor:
print
(record)
Este artículo es una contribución de Rishabh Bansal y Shaurya Uppal .
Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA