sql >> Databáze >  >> NoSQL >> MongoDB

PyMongo/Mongoengine ekvivalent mongodump

Pro moji relativně malou databázi jsem nakonec použil následující řešení. Není to opravdu vhodné pro velké nebo složité databáze, ale pro můj případ to stačí. Vypíše všechny dokumenty jako json do záložního adresáře. Je to neohrabané, ale nespoléhá to na jiné věci než na 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))


  1. Není možné získat majetek z mangoose objektu

  2. jak odstranit konkrétní objekt z objektu pole v MongoDB

  3. MongoDB $toDate

  4. Redis:rozprostřít zpravodajské kanály v seznamu nebo seřazené sadě?