Buscar por ObjectId en mongodb con PyMongo – Python

MongoDB es una base de datos orientada a documentos NoSQL . En MongoDB, los datos se almacenan en una estructura de documento similar a JSON en lugar de almacenar datos en columnas y filas. MongoDB es flexible para almacenar datos semiestructurados y no estructurados. MongoDB se utiliza para el almacenamiento de datos de gran volumen y puede escalar horizontalmente.

ObjectId: la clase ObjectId es un tipo BSON binario de 12 bytes, en el que 4 bytes de la marca de tiempo de creación, 5 bytes de un valor aleatorio y 3 bytes de contador incremental. ObjectId es la clave principal predeterminada para los documentos de MongoDB y generalmente se encuentra en el campo «_id».

eg : { "_id" : ObjectId("54759eb3c090d83494e2d804") }

PyMongo: PyMongo es un controlador nativo de Python para MongoDB. Permite la interacción con la base de datos MongoDB a través de Python.

Paso 1: asegúrese de iniciar la base de datos MongoDB localmente en el puerto predeterminado (27017). Conexión a MongoDB, acceso a la base de datos y recopilación de objetos.

Python3

# importing MongoClient from pymongo
from pymongo import MongoClient
 
# importing ObjectId from bson library
from bson.objectid import ObjectId
 
# Establishing connection with
# mongodb on localhost
client = MongoClient('127.0.0.1', 27017)
 
# Access database object
db = client['database']
 
# Access collection object
collection = db['collection']

Paso 2: consultar MongoDB con find_one().

Sintaxis:

find_one(filter=None, *args, **kwargs)
filter(optional): query filter that selects which documents should be included in the result set.
*args (optional): any additional positional arguments
*kwargs (optional): any additional keyword arguments

Ejemplo 1: en este ejemplo, ya hemos almacenado la instancia del objeto ObjectId, luego usamos la instancia del objeto almacenado para buscar el documento.

Python3

# inserts data into collection and
# returns an object of type objectId
objInstance = collection.insert_one({"name": "sam", "age": 20}).inserted_id
 
# search MongoDB with
# an object of type objectId
collection.find_one(objInstance)

Producción:

Ejemplo 2: En este ejemplo, tenemos la string hexadecimal que no es un objeto de ObjectId. Importamos ObjectId de la biblioteca bson para buscar el documento.

Python3

# use the string object id
# and objectId object to
# create object of type ObjectId
id = "5fec2c0b348df9f22156cc07"
objInstance = ObjectId(id)
 
collection.find_one({"_id": objInstance})
 
# below line works same as the above
collection.find_one({"_id": ObjectId(id)})
collection.find_one(ObjectId(id))

Producción:

Ejemplo 3: En este ejemplo, avanzamos en la búsqueda especificando proyecciones, es decir, qué campo queremos incluir/excluir en el conjunto de resultados. La siguiente proyección devolverá el documento completo sin el campo «_id».

Python3

# search document with filter
# first parameter is search query
# second parameter is filter query
# you can as many fields you want
# you can specify either 1 or 0
# in filter fields
# if you specify 0 the field will
# be eliminated form the result
query = {"_id": ObjectId(id)}
 
filter = {"_id": 0}
 
collection.find_one(query, filter)

Producción:

Publicación traducida automáticamente

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