如何获取适合isinstance()的pymongo数据库的class?

How to get class of pymongo database suitable for isinstance()?

我有一个测试,我试图确定我是否已经使用 pymongo 成功获得了一个数据库实例,并且想在断言中使用 isinstance(obj, class) 。但是我无法弄清楚如何获得数据库的class(不是实例)

我尝试了几种方法。这似乎最接近但仍然没有雪茄:

import pymongo
client = pymongo.MongoClient('localhost')
database = client['test']
assert isinstance(database, pymongo.MongoClient.db_name)

这不起作用,因为 db_name 未定义。 Pymongo 文档说一个新的数据库(参考?)是使用

pymongo.MongoClient.db_name

pymongo.MongoClient[db_name]

当然,如果我给它一个 db_name 字符串,它们就会创建一个实例,但我只想要 class,而不是实例。

谢谢!

您需要做的就是检查它是否是 pymongo.database.Database

的实例
>>> import pymongo
>>> client = pymongo.MongoClient()
>>> db = client.test
>>> isinstance(db, pymongo.database.Database)
True