Освобождение места в mongodb

Столкнулся с проблемой освобождения дискового пространства после удаление данных в nongodb

Рецепт

db.repairDatabase()

как и

mongod --config /usr/local/etc/mongod.conf --repair --repairpath /Volumes/X/mongo_repair --nojournal

не подошёл из-за отсутствия свободного места в объёме, равному объёму базы

 

Рецепт

db.getCollectionNames().forEach(function (collectionName) {
    print('Compacting: ' + collectionName);
    db.runCommand({ compact: collectionName });
});

не помог. Возможно, из-за превышения времени выполнения запроса, неизвестно - скрипт выполнился а старые файлы на диско остались.

 

Сработал dump/restore:

mongodump -d databasename
echo 'db.dropDatabase()' | mongo databasename
mongorestore -d databasename dump/databasename

База 'databasename' была уничтожена и создана новая

И то же самое одной строкой:

export DBNAME="mydb" ; mongodump -d ${DBNAME} ; echo 'db.dropDatabase()' | mongo ${DBNAME} ; mongorestore -d ${DBNAME} dump/${DBNAME}

 

 

 

 

 

 

mongodb