MongoDB y Python

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:

  1. Es compatible con la estructura de datos jerárquicos (consulte los documentos para obtener más detalles)
  2. Admite arrays asociadas como Diccionarios en Python.
  3. Controladores de Python integrados para conectar la aplicación de Python con la base de datos. Ejemplo: PyMongo
  4. Está diseñado para Big Data.
  5. La implementación de MongoDB es muy fácil.

MongoDB frente a RDBMS

Guía de instalación de MongoDB y PyMongo

  1. 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
  2. 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/”)
  3. 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 diccionario

    mydatabase = 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.

  4. 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.
    _id

  5. 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)
  6. 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:
    1. 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’.

    2. 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’.

    3. 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())
  7. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *