python - 使用python将数据插入mongodb

标签 python mongodb connection database

我应该在每次插入时重新初始化连接吗?

class TwitterStream:
  def __init__(self, timeout=False):
  while True:
    dump_data()

  def dump_data:
    ##dump my data into mongodb    
    ##should I be doing this every time??:
    client=MongoClient()
    mongo=MongoClient('localhost',27017)
    db=mongo.test
    db.insert('some stuff':'other stuff')
    ##dump data and close connection
    #########################

每次写入记录时都需要打开连接吗?或者,假设我每秒向数据库写入 5 次,每次大约 10kb,我可以保持连接打开吗?

如果只有一个连接就足够了,我应该在哪里定义保存连接的变量(clientmongodb)?

最佳答案

打开一个在程序运行期间有效的 MongoClient:

client = MongoClient()

class TwitterStream:
    def dump_data:
        while True:
            db = client.test
            db.insert({'some stuff': 'other stuff'})

打开单个 MongoClient 意味着您只需支付一次启动成本,并且其连接池将最大限度地降低打开新连接的成本。

如果您担心偶尔出现网络问题,请将您的操作包装在异常 block 中:

try:
    db.insert(...)
except pymongo.errors.ConnectionFailure:
    # Handle error.
    ...

关于python - 使用python将数据插入mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17625271/

相关文章:

linux - 如何通过ISP(用户名和密码)在fedora/ubuntu中连接有线网络?

php - 如何检查我是否已连接到数据库?

php - pdo 查询仅在第一次有效

python - Django 查询中的 GROUP BY

python - 如何在 setup.py 脚本中运行所有测试?

python - 按多列排名并按另一列分组

ruby-on-rails - 相交 Mongoid "in"- 查询

python - 当我尝试为所有 python 库构建标记文件时,ctags 永远不会停止

Spring Mongo Repository 多态性

node.js - 如何使用 arrayFilters 更新数组中的元素