summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mongo/db/storage/storage_engine_impl.cpp10
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;