diff --git a/src/mongo/db/repl/initial_sync/collection_cloner.cpp b/src/mongo/db/repl/initial_sync/collection_cloner.cpp index 8ced3c00905..64cead5c1ae 100644 --- a/src/mongo/db/repl/initial_sync/collection_cloner.cpp +++ b/src/mongo/db/repl/initial_sync/collection_cloner.cpp @@ -562,11 +562,12 @@ void CollectionCloner::insertDocumentsCallback(const executor::TaskExecutor::Cal _progressMeter.hit(int(docs.size())); invariant(_collLoader); - CollectionBulkLoader::ParseRecordIdAndDocFunc fn = (_recordIdsReplicated) - ? ([](const BSONObj& doc) { - return std::make_pair(RecordId(doc["r"].Long()), doc["d"].Obj()); - }) - : ([](const BSONObj& doc) { return std::make_pair(RecordId(0), doc); }); + auto fn = [recordIdsReplicated = + _recordIdsReplicated](const BSONObj& doc) -> std::pair { + if (recordIdsReplicated) + return {RecordId(doc["r"].Long()), doc["d"].Obj()}; + return {RecordId(0), doc}; + }; // The insert must be done within the lock, because CollectionBulkLoader is not // thread safe. uassertStatusOK(_collLoader->insertDocuments(docs, fn));