diff options
Diffstat (limited to 'src/mongo/db/pipeline/document_source_lookup.cpp')
-rw-r--r-- | src/mongo/db/pipeline/document_source_lookup.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/mongo/db/pipeline/document_source_lookup.cpp b/src/mongo/db/pipeline/document_source_lookup.cpp index 2646d125d32..ba175032f79 100644 --- a/src/mongo/db/pipeline/document_source_lookup.cpp +++ b/src/mongo/db/pipeline/document_source_lookup.cpp @@ -167,20 +167,20 @@ std::unique_ptr<DocumentSourceLookUp::LiteParsed> DocumentSourceLookUp::LitePars // Recursively lite parse the nested pipeline, if one exists. auto pipelineElem = specObj["pipeline"]; - boost::optional<LiteParsedPipeline> liteParsedPipeline; + std::vector<LiteParsedPipeline> liteParsedPipelineVector; if (pipelineElem) { auto pipeline = uassertStatusOK(AggregationRequest::parsePipelineFromBSON(pipelineElem)); AggregationRequest foreignAggReq(fromNss, std::move(pipeline)); - liteParsedPipeline = LiteParsedPipeline(foreignAggReq); - - auto pipelineInvolvedNamespaces = liteParsedPipeline->getInvolvedNamespaces(); + LiteParsedPipeline liteParsedPipeline(foreignAggReq); + auto pipelineInvolvedNamespaces = liteParsedPipeline.getInvolvedNamespaces(); foreignNssSet.insert(pipelineInvolvedNamespaces.begin(), pipelineInvolvedNamespaces.end()); + liteParsedPipelineVector.push_back(std::move(liteParsedPipeline)); } - foreignNssSet.insert(fromNss); - - return stdx::make_unique<DocumentSourceLookUp::LiteParsed>( - std::move(fromNss), std::move(foreignNssSet), std::move(liteParsedPipeline)); + return stdx::make_unique<DocumentSourceLookUp::LiteParsed>(spec.fieldName(), + std::move(fromNss), + std::move(foreignNssSet), + std::move(liteParsedPipelineVector)); } REGISTER_DOCUMENT_SOURCE(lookup, |