首页 文章

使用Python将MongoDB输出结果导入S3存储桶

提问于
浏览
0

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 的文档中,有一个名为 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()

推荐的方法是什么?

1 回答

  • 0

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

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

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

相关问题