summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/mongo_process_interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/mongo_process_interface.h')
-rw-r--r--src/mongo/db/pipeline/mongo_process_interface.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mongo/db/pipeline/mongo_process_interface.h b/src/mongo/db/pipeline/mongo_process_interface.h
index b61556bf560..cbe85447f19 100644
--- a/src/mongo/db/pipeline/mongo_process_interface.h
+++ b/src/mongo/db/pipeline/mongo_process_interface.h
@@ -85,6 +85,12 @@ public:
std::tuple<BSONObj, write_ops::UpdateModification, boost::optional<BSONObj>>;
using BatchedObjects = std::vector<BatchObject>;
+ enum class UpsertType {
+ kNone, // This operation is not an upsert.
+ kGenerateNewDoc, // If no documents match, generate a new document using the update spec.
+ kInsertSuppliedDoc // If no documents match, insert the document supplied in 'c.new' as-is.
+ };
+
enum class CurrentOpConnectionsMode { kIncludeIdle, kExcludeIdle };
enum class CurrentOpUserMode { kIncludeAll, kExcludeOthers };
enum class CurrentOpTruncateMode { kNoTruncation, kTruncateOps };
@@ -166,7 +172,7 @@ public:
const NamespaceString& ns,
BatchedObjects&& batch,
const WriteConcernOptions& wc,
- bool upsert,
+ UpsertType upsert,
bool multi,
boost::optional<OID> targetEpoch) = 0;