gpt4 book ai didi

python - PyMongo/Mongoengine 相当于 mongodump

转载 作者:IT老高 更新时间:2023-10-28 13:25:52 25 4
gpt4 key购买 nike

PyMongomongoengine 中是否有与 MongoDB 的 mongodump 等效的功能?我似乎在文档中找不到任何东西。

用例:我需要定期备份远程 mongo 数据库。 native 是生产服务器,没有安装mongo,我没有admin权限,所以不能使用subprocess调用mongodump。我可以在 virtualenv 上本地安装 mongo 客户端,但我更喜欢 API 调用。

非常感谢:-)。

最佳答案

对于我相对较小的小型数据库,我最终使用了以下解决方案。它不太适合大型或复杂的数据库,但对于我的情况来说已经足够了。它将所有文档以 json 格式转储到备份目录。它很笨重,但它不依赖于 pymongo 以外的其他东西。

from os.path import join
import pymongo
from bson.json_utils import dumps

def backup_db(backup_db_dir):
client = pymongo.MongoClient(host=<host>, port=<port>)
database = client[<db_name>]
authenticated = database.authenticate(<uname>,<pwd>)
assert authenticated, "Could not authenticate to database!"
collections = database.collection_names()
for i, collection_name in enumerate(collections):
col = getattr(database,collections[i])
collection = col.find()
jsonpath = collection_name + ".json"
jsonpath = join(backup_db_dir, jsonpath)
with open(jsonpath, 'wb') as jsonfile:
jsonfile.write(dumps(collection))

关于python - PyMongo/Mongoengine 相当于 mongodump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24610484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com