【问题标题】:Import MongoDB output result into S3 bucket using Python使用 Python 将 MongoDB 输出结果导入 S3 存储桶
【发布时间】:2018-07-03 08:29:53
【问题描述】:

MongoDB 数据库名称 :- testdb,

集合名称:-test_collection

我要执行的 MongoDB 命令:-

db.getCollection('test_collection').find({ request_time: { $gte: new Date('2018-06-22'), $lt: new Date('2018-06-26') }});

test_collection的文档中,有一个key叫request_time。我想获取('2018-06-22')('2018-06-26')时间范围内的文档

MongoDB 用户名:- 用户 MongoDB 密码:- 密码

MongoDB 在 27017 端口上运行。

我在两件事上需要帮助。我可以连接到数据库,但如何在身份验证的情况下提供用户名和密码。这是我的 Python 代码,

from pymongo import Connection
connection = Connection()
connection = Connection('localhost', 27017)
db = connection.testdb
collection = db.testcollection
for post in collection.find():
        print post

还有一点,

我有一个名为 mongodoc 的 S3 存储桶。我想查询该 mongo 命令并将结果文档导入 S3 存储桶。

我可以使用名为 Boto 的库连接到 S3 存储桶,

from boto.s3.connection import S3Connection
conn = S3Connection(AWS_KEY, AWS_SECRET)
bucket = conn.get_bucket(mongodoc)
destination = bucket.new_key()
destination.name = filename
destination.set_contents_from_file(myfile)
destination.make_public()

实现这一目标的推荐方法是什么?

【问题讨论】:

标签: python mongodb amazon-s3 boto boto3


【解决方案1】:

如果提供身份验证,您必须提供用户名和密码以及主机名,

connection=Connection(hostname="",username="",password="")

对于 s3 连接,尝试使用 boto3 而不是 boto。 boto3 为 s3 客户端和资源提供了多种可用的功能。一旦查询到您的 mongodb 结果可以以文件的形式上传到您的 s3 存储桶。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2021-11-15
    • 2021-03-09
    • 2012-03-18
    • 2018-06-02
    • 2021-11-25
    • 2020-03-10
    • 2022-10-23
    • 1970-01-01
    相关资源
    最近更新 更多