sql >> Database teknologi >  >> NoSQL >> MongoDB

PyMongo/Mongoengine svarende til mongodump

Til min relativt lille lille database brugte jeg til sidst følgende løsning. Det er ikke rigtig egnet til store eller komplekse databaser, men det er tilstrækkeligt for mit tilfælde. Det dumper alle dokumenter som en json til backup-mappen. Den er klodset, men den er ikke afhængig af andre ting end 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. Mongoose, CastError:Cast to Array mislykkedes for værdi ved forsøg på at gemme en model, der indeholder en model

  2. MeteorJS - Linker billeder (FS.collection) til deres relevante dokument i MongoDB Collection

  3. Sådan deserialiserer du et BsonDocument-objekt tilbage til klassen

  4. Find antallet af maksimale fortløbende poster baseret på ét felt i Mongodb Query