diff options
Diffstat (limited to 'src/mongo/db/pipeline/document_source_change_stream_oplog_match.cpp')
| -rw-r--r-- | src/mongo/db/pipeline/document_source_change_stream_oplog_match.cpp | 31 |
1 files changed, 10 insertions, 21 deletions
diff --git a/src/mongo/db/pipeline/document_source_change_stream_oplog_match.cpp b/src/mongo/db/pipeline/document_source_change_stream_oplog_match.cpp index aab87a8433c..c11cb0a1aeb 100644 --- a/src/mongo/db/pipeline/document_source_change_stream_oplog_match.cpp +++ b/src/mongo/db/pipeline/document_source_change_stream_oplog_match.cpp @@ -31,7 +31,6 @@ #include "mongo/bson/bsonmisc.h" #include "mongo/db/pipeline/change_stream_filter_helpers.h" -#include "mongo/db/pipeline/change_stream_helpers.h" #include "mongo/db/pipeline/document_source_change_stream_unwind_transaction.h" namespace mongo { @@ -105,7 +104,7 @@ DocumentSourceChangeStreamOplogMatch::DocumentSourceChangeStreamOplogMatch( boost::intrusive_ptr<DocumentSourceChangeStreamOplogMatch> DocumentSourceChangeStreamOplogMatch::create(const boost::intrusive_ptr<ExpressionContext>& expCtx, const DocumentSourceChangeStreamSpec& spec) { - auto resumeToken = change_stream::resolveResumeTokenFromSpec(expCtx, spec); + auto resumeToken = DocumentSourceChangeStream::resolveResumeTokenFromSpec(expCtx, spec); return make_intrusive<DocumentSourceChangeStreamOplogMatch>(resumeToken.clusterTime, expCtx); } @@ -204,26 +203,16 @@ Pipeline::SourceContainer::iterator DocumentSourceChangeStreamOplogMatch::doOpti return nextChangeStreamStageItr; } -Value DocumentSourceChangeStreamOplogMatch::serialize(const SerializationOptions& opts) const { - BSONObjBuilder builder; - if (opts.verbosity) { - BSONObjBuilder sub(builder.subobjStart(DocumentSourceChangeStream::kStageName)); - sub.append("stage"_sd, kStageName); - sub.append(DocumentSourceChangeStreamOplogMatchSpec::kFilterFieldName, - getMatchExpression()->serialize(opts)); - sub.done(); - } else { - BSONObjBuilder sub(builder.subobjStart(kStageName)); - if (opts.literalPolicy != LiteralSerializationPolicy::kUnchanged || - opts.transformIdentifiers) { - sub.append(DocumentSourceChangeStreamOplogMatchSpec::kFilterFieldName, - getMatchExpression()->serialize(opts)); - } else { - DocumentSourceChangeStreamOplogMatchSpec(_predicate).serialize(&sub); - } - sub.done(); +Value DocumentSourceChangeStreamOplogMatch::serialize( + boost::optional<ExplainOptions::Verbosity> explain) const { + if (explain) { + return Value( + Document{{DocumentSourceChangeStream::kStageName, + Document{{"stage"_sd, "internalOplogMatch"_sd}, {"filter"_sd, _predicate}}}}); } - return Value(builder.obj()); + + DocumentSourceChangeStreamOplogMatchSpec spec(_predicate); + return Value(Document{{DocumentSourceChangeStreamOplogMatch::kStageName, spec.toBSON()}}); } } // namespace mongo |
