diff options
Diffstat (limited to 'src/mongo/db/storage/mmap_v1/repair_database.cpp')
-rw-r--r-- | src/mongo/db/storage/mmap_v1/repair_database.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/mongo/db/storage/mmap_v1/repair_database.cpp b/src/mongo/db/storage/mmap_v1/repair_database.cpp index 777f8f25b05..f85120f8a87 100644 --- a/src/mongo/db/storage/mmap_v1/repair_database.cpp +++ b/src/mongo/db/storage/mmap_v1/repair_database.cpp @@ -339,10 +339,9 @@ namespace mongo { OldClientContext ctx(txn, ns ); Collection* coll = originalDatabase->getCollection( ns ); if ( coll ) { - scoped_ptr<RecordIterator> it( coll->getIterator(txn) ); - while ( !it->isEOF() ) { - RecordId loc = it->getNext(); - BSONObj obj = coll->docFor(txn, loc).value(); + auto cursor = coll->getCursor(txn); + while (auto record = cursor->next()) { + BSONObj obj = record->data.releaseToBson(); string ns = obj["name"].String(); @@ -404,12 +403,9 @@ namespace mongo { } } - scoped_ptr<RecordIterator> iterator(originalCollection->getIterator(txn)); - while ( !iterator->isEOF() ) { - RecordId loc = iterator->getNext(); - invariant( !loc.isNull() ); - - BSONObj doc = originalCollection->docFor(txn, loc).value(); + auto cursor = originalCollection->getCursor(txn); + while (auto record = cursor->next()) { + BSONObj doc = record->data.releaseToBson(); WriteUnitOfWork wunit(txn); StatusWith<RecordId> result = tempCollection->insertDocument(txn, |