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. Docker内のリモートサーバーへのredis接続タイムアウト

    2. CouchDBまたはMongoDBの多対多の関係

    3. MongoDBとの春のセッション

    4. MongoDBの検索と削除-最速の方法