MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

PyMongo/Mongoengine еквивалент на mongodump

За моята сравнително малка малка база данни в крайна сметка използвах следното решение. Не е много подходящ за големи или сложни бази данни, но е достатъчен за моя случай. Той изхвърля всички документи като 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))


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo дава грешка при дублиране на ключ за полета с уникално:false

  2. Заявка за вложен масив в MongoDb

  3. Проблем с точността на времето при сравнение в драйвера на mongodb в Go и евентуално в друг език и друга база данни

  4. Mongoose - Запазване на масив от низове

  5. Как използвате Mongoose, без да дефинирате схема?