¿Cómo crear un índice para la colección MongoDB usando Python?

Requisitos previos: Conceptos básicos de MongoDB Python Este artículo se centra en el método create_index() de la biblioteca PyMongo. Los índices hacen que sea eficiente realizar requests de consulta, ya que almacena los datos de una manera que los hace rápidos y fáciles de recorrer. Comencemos con el método create_index():

  1. Importación del módulo PyMongo: importe el módulo PyMongo usando el comando:
from pymongo import MongoClient
  1. Si MongoDB ya no está instalado en su máquina, puede consultar la guía: Guía para instalar MongoDB con Python
  2. Creación de una conexión: ahora que ya habíamos importado el módulo, es hora de establecer una conexión con el servidor MongoDB, presumiblemente que se ejecuta en localhost (nombre de host) en el puerto 27017 (número de puerto).
client = MongoClient(‘localhost’, 27017)
  1. Acceso a la Base de Datos: Desde que se establece la conexión con el servidor MongoDB. Ahora podemos crear o usar la base de datos existente.
mydatabase = client.name_of_the_database
  1. Accediendo a la Colección: Ahora seleccionamos la colección de la base de datos usando la siguiente sintaxis:
collection_name = mydatabase.name_of_collection
  1. Creando un índice: Ahora crearemos el índice usando la función create_index(). 

Sintaxis:

create_index(keys, session=None, **kwargs)

keys: Takes either a single key or a list of (key, direction) pairs.
session (optional): a ClientSession. arguments
**kwargs (optional): any additional index creation option

Ejemplo: Base de datos de muestra: python-mongodb-insert-one-21 

Python3

# Python program to demonstrate
# create_index() method
 
 
# Importing Library
from pymongo import MongoClient, ASCENDING
 
 
# Connecting to MongoDB server
# client = MongoClient('host_name', 'port_number')
client = MongoClient('localhost', 27017)
 
 
# Connecting to the database named
# GFG
mydatabase = client.GFG
 
 
# Accessing the collection named
# gfg_collection
mycollection = mydatabase.Student
 
mycollection.create_index('Roll No', unique = True)
 
 
# Inserting into Database
mycollection.insert_one({'_id':8 ,
                         'name': 'Deepanshu',
                         'Roll No': '1008',
                         'Branch': 'IT'})
 
# Inserting with the same Roll no again.
# As the Roll no field is the index and
# is set to unique it will through the error.
mycollection.insert_one({'_id':9 ,
                         'name': 'Hitesh',
                         'Roll No': '1008',
                         'Branch': 'CSE'})

Producción:

python-mongodb-index

DuplicateKeyError Rastreo (última llamada más reciente) en 36 ‘nombre’: ‘Hitesh’, 37 ‘Roll No’: ‘1008’, —> 38 ‘Branch’: ‘CSE’}) DuplicateKeyError: E11000 colección de errores de clave duplicada: GFG. Índice de estudiante: Rollo No_1 clave duplicada: { : «1008» }

MongoDB Shell:  Lanza el DuplicateKeyError porque ya hay un documento que existe con el Roll No 1008 y estamos tratando de insertar otro documento con el mismo Roll No. Este error ocurre porque creamos un índice en el campo Roll No y lo marcamos como único.

Publicación traducida automáticamente

Artículo escrito por sukritinpal 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 *