diff options
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/db/storage/storage_engine_impl.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/mongo/db/storage/storage_engine_impl.cpp b/src/mongo/db/storage/storage_engine_impl.cpp index ddebc8519fd..ab79ae046d0 100644 --- a/src/mongo/db/storage/storage_engine_impl.cpp +++ b/src/mongo/db/storage/storage_engine_impl.cpp @@ -1245,13 +1245,9 @@ int64_t StorageEngineImpl::sizeOnDiskForDb(OperationContext* opCtx, StringData d catalog::forEachCollectionFromDb(opCtx, dbName, MODE_IS, [&](const CollectionPtr& collection) { size += collection->getRecordStore()->storageSize(opCtx); - std::vector<std::string> indexNames; - collection->getAllIndexes(&indexNames); - - for (size_t i = 0; i < indexNames.size(); i++) { - std::string ident = - _catalog->getIndexIdent(opCtx, collection->getCatalogId(), indexNames[i]); - size += _engine->getIdentSize(opCtx, ident); + auto it = collection->getIndexCatalog()->getIndexIterator(opCtx, true); + while (it->more()) { + size += _engine->getIdentSize(opCtx, it->next()->getIdent()); } return true; |