sql >> Databasteknik >  >> NoSQL >> MongoDB

PyMongo/Mongoengine motsvarighet till mongodump

För min relativt lilla lilla databas använde jag så småningom följande lösning. Det är inte riktigt lämpligt för stora eller komplexa databaser, men det räcker för mitt fall. Den dumpar alla dokument som en json till backupkatalogen. Den är klumpig, men den förlitar sig inte på andra saker än 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. batchSize-fältnamn ignoreras i Field Projection

  2. hur man hittar distinkta fält av en modell på en och tillstånd i mangust?

  3. MongoDB grupperar efter värden i ett matrisfält

  4. socket.io broadcast-funktion &Redis pub/sub-arkitektur