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 对象,它们不会占用太多资源,并且当它们不再被引用时将被垃圾收集。
我有一个简单的 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 对象,它们不会占用太多资源,并且当它们不再被引用时将被垃圾收集。