मेरे अपेक्षाकृत छोटे डेटाबेस के लिए, मैंने अंततः निम्नलिखित समाधान का उपयोग किया। यह वास्तव में बड़े या जटिल डेटाबेस के लिए उपयुक्त नहीं है, लेकिन यह मेरे मामले के लिए पर्याप्त है। यह सभी दस्तावेज़ों को एक जेसन के रूप में बैकअप निर्देशिका में डंप करता है। यह भद्दा है, लेकिन यह पाइमोंगो के अलावा अन्य सामानों पर निर्भर नहीं करता है।
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))