似乎找不到回答我问题的答案。
我有一系列的MongoDB文档,其中包含有关版本和增量发行版(例如1.2、1.4.2等)的版本号。
搜索数据库的代码是:
client = MongoClient("Localhost",27017) # Set Mongo Client to local hose
db = client.Assignment # Set db as the DB required
collection = db.project # Set the collection to the collection required
Version = float(input("Enter version number: "))
query = {"prod.v_num": Version}
Return = collection.find(query)
for doc in Return:
print(doc["_id"], "¦", doc["prod"]["name"], "¦", doc["prod"]["v_num"], "¦",doc["owner"])
但是,在某些情况下,搜索不会返回任何结果(即,没有带有所需版本号的文档)。
如何确定是否没有与退货匹配的文件,并允许我打印出警告消息?
我尝试过,但是没用
if len(Return) == 0:
print("No documents match your search").
答案 0 :(得分:1)
pymongo.cursor.Cursor
未实现__len__
方法。这就是为什么出现此错误的原因:
TypeError:“光标”类型的对象没有len()
但是它实现了count
方法,该方法返回此查询的结果集中的文档数。您可以像这样使用它:
if Return.count() == 0:
print("No documents match your search")
还请注意,自Python3.7版本开始不推荐使用它,而应使用count_documents
查询:
Return = collection.count_documents(query)
if Return == 0:
print("No documents match your search")