summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_change_stream_oplog_match.cpp
diff options
context:
space:
mode:
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.cpp31
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