📜  如何检查 PyMongo 光标是否为空?

📅  最后修改于: 2022-05-13 01:55:03.505000             🧑  作者: Mango

如何检查 PyMongo 光标是否为空?

MongoDB是一个开源的 NOSQL 数据库,用 C++ 实现。它是一种面向文档的数据库实现,将数据存储在称为集合(MongoDB 文档组)的结构中。 PyMongo是一个著名的开源库,用于嵌入式 MongoDB 查询。 PyMongo 广泛用于与 MongoDB 数据库交互,因为Python是用于数据分析和数据科学的强大语言。

检查 Cursor 对象是否为空?

当使用 .find() 方法使用 pymongo 查询给定集合时,返回值是 PyMongo.cursor.Cursor 类类型的对象,它包含与查询匹配的文档。如果进行的查询没有返回结果,PyMongo 游标将为空。如果要获取需要使用 .find_one() 方法的单个文档。要检查光标对象是否为空,或者是否可以遵循几种方法 -

方法1:返回的游标是一个可迭代的,因此我们可以将其转换为一个列表。如果列表的长度为零(即列表为空),这意味着光标也为空。

样本数据库:

例子:

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")


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")


输出:

Cursor is Not Empty
Do Stuff Here

方法 2:另一种方法是使用 .count() 方法返回查询的匹配文档数。如果 .count() 的返回值为 0,则游标为空y

例子:

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")

输出:

Cursor is Not Empty
Do Stuff Here