python - MongoClient 是否会维护其集合对象直到被销毁?(Python)
问题描述
我有一个简单的 Python MongoClient 类和一个来自其集合之一的 fetch 方法。假设我们有 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 对象,它们不占用太多资源,并且在不再引用它们时将被垃圾回收。
推荐阅读
- amazon-web-services - 用于 S3 传输的 AWS Lambda 跨账户密钥和角色使用
- c# - 使用字符串的 C# 计算器
- ruby-on-rails - 在 API 错误处理期间输出的 jbuilder 语法不正确
- assembly - 为什么16位指令不能访问通用寄存器的高位寄存器
- android - 子集合请求(Firestore、Coroutine)
- python - 错误:包“对象检测”需要不同的 Python:2.7.12 不在“>3.6”中
- mysql - 将 SQL WHERE 查询转换为 JOIN
- python-3.x - PIL 调整大小过滤器与其整数表示之间的映射是什么?
- php - 在 Wordpress 结帐页面上收集电子邮件(适用于 Mailchimp 受众)
- ansible - 过滤已修改存储库的 webhook 有效负载