MongoClient 是否会维护其集合对象直到被销毁? (Python)

Does MongoClient maintain its collection objects until destroyed? (Python)

我有一个简单的 Python MongoClient class 和一个来自其集合之一的获取方法。 假设我们有 self.db 作为我们的默认数据库。

我的第一个问题是,pymongo 是否会维护它的集合对象,直到客户端对象被销毁。

class MyMongo(MongoClient):
...
    def find_all(self, col_name):
        collection = self.db[col_name]       # here, does it fetch the collection from MongoDB
                                             # everytime?
        return collection.find({})
...

第二个问题是,如果我在上面的 MongoClient 中实例化指向其中一个集合的新 Collection 实例,我是否会为同一个 Collection 拥有两个 Collection 实例?

from pymongo.collection import Collection

mongo = MyMongo()
col = Collection(mongo.db, col_name)      # here, will I have two Collection instances?
                                          # for one is inside of mongo (=mongo.db[col_name])
                                          # for another is 'col' variable

集合对象通常只有简单的属性,例如集合的名称和其中的选项。因此,它们类似于任何 Python 应用程序使用的绝大多数 Python 对象,它们不会占用太多资源,并且当它们不再被引用时将被垃圾收集。