PyMongo / Mongoengine等价于mongodump

Gx1sptDTDa

是否有相同功能PyMongomongoengine到MongoDB的mongodump我似乎在文档中找不到任何内容。

用例:我需要定期备份远程mongo数据库。本地计算机是未安装mongo的生产服务器,并且我没有管理员权限,因此无法使用subprocesscall mongodump我可以在virtualenv上本地安装mongo客户端,但是我更喜欢API调用。

非常感谢 :-)。

Gx1sptDTDa

对于相对较小的小型数据库,我最终使用了以下解决方案。它并不真正适用于大型数据库或复杂数据库,但足以满足我的情况。它将所有文档作为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))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Flask-MongoEngine和PyMongo聚合查询

来自分类Dev

Pymongo查询正常,但是Mongoengine不查询任何内容

来自分类Dev

MongoDB:运行更快的查询,这是更好的Pymongo或MongoEngine

来自分类Dev

与本地pymongo相比,Mongoengine在大型文档上的运行速度非常慢

来自分类Dev

使用pyMongo和MongoEngine从MongoDb中的列表及其索引中删除对象?

来自分类Dev

为什么仅尝试访问对象时MongoEngine / pymongo给出错误

来自分类Dev

无法使用 MongoEngine 进行身份验证。PyMongo 有效。如何让 MongoEngine 进行身份验证?

来自分类Dev

可以先使用mongoengine定义一个文档,然后再使用pymongo插入许多文档吗?

来自分类Dev

PyMongo连接被拒绝

来自分类Dev

PyMongo排序与元数据

来自分类Dev

使用pymongo查询mongodb

来自分类Dev

带投影的PyMongo查询

来自分类Dev

用pymongo调用convertToCapped

来自分类Dev

pymongo upsert increment in subcollection

来自分类Dev

pymongo的MongoDB WorkingSet

来自分类Dev

Pymongo使用$ exists

来自分类Dev

在pymongo中加快$或查询

来自分类Dev

pymongo:使用MongoReplicaSetClient的优势?

来自分类Dev

pymongo按日期排序

来自分类Dev

搜索文档的ObjectId:pymongo

来自分类Dev

Flask-PyMongo collMod

来自分类Dev

PyMongo无法获得$ and + $或工作

来自分类Dev

Pymongo默认日记

来自分类Dev

pymongo无法检索文件

来自分类Dev

MongoLab / PyMongo连接错误

来自分类Dev

Pymongo聚合$在列表中

来自分类Dev

使用Pymongo删除字段

来自分类Dev

mongodb更改流-pymongo

来自分类Dev

pymongo的MongoDB WorkingSet