¿Cómo comprobar si el cursor de PyMongo está vacío?

MongoDB es una base de datos NOSQL de código abierto y está implementada en C++. Es una implementación de base de datos orientada a documentos que almacena datos en estructuras llamadas Colecciones (grupo de documentos MongoDB). PyMongo es una famosa biblioteca de código abierto que se utiliza para consultas integradas de MongoDB. PyMongo se usa ampliamente para interactuar con una base de datos MongoDB, ya que Python es un lenguaje poderoso para el análisis de datos y la ciencia de datos.

¿Comprobar si el objeto Cursor está vacío o no?

Cuando se consulta una colección dada usando pymongo usando el método .find() , el valor de retorno es un objeto de tipo PyMongo.cursor.Cursor Class y contiene los documentos que coinciden con la consulta. El cursor de PyMongo estaría vacío en caso de que la consulta realizada no arrojara ningún resultado. Si desea obtener los documentos individuales, debe utilizar el método .find_one() . Para verificar si el objeto del cursor está vacío o no, se pueden seguir varios enfoques: 

Enfoque 1: el cursor devuelto es iterable, por lo que podemos convertirlo en una lista. Si la longitud de la lista es cero (es decir, la lista está vacía), esto implica que el cursor también está vacío.

Base de datos de muestra:

Ejemplo: 

Python3

import pymongo
  
connection = pymongo.MongoClient()
db = connection.GFG
col = db.lecture
  
# This is a cursor instance
cur = col.find()   
  
results = list(cur)
  
# Checking the cursor is empty
# or not
if len(results)==0:
    print("Empty Cursor")
else:
    print("Cursor is Not Empty")
    print("Do Stuff Here")

Producción:

Cursor is Not Empty
Do Stuff Here

Enfoque 2: otra forma es usar el método .count() que devuelve la cantidad de documentos coincidentes para la consulta. si el valor devuelto por .count() es 0, entonces el cursor está vacío y

Ejemplo:

Python3

import pymongo
  
  
connection = pymongo.MongoClient()
db = connection.GFG
col = db.lecture
  
# This is a cursor instance
cur = col.find()
  
if cur.count()==0:
    print("Empty Cursor")
else:
    print("Cursor is Not Empty")
    print("Do Stuff Here")

Producción:

Cursor is Not Empty
Do Stuff Here

Publicación traducida automáticamente

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