Skip to content

Commit 2d43d9c

Browse files
lynne-wangMongoDB Bot
authored andcommitted
SERVER-108959: Revert SERVER-104422 Support a "searchRootDocumentId" meta variable from mongot (#39793)
GitOrigin-RevId: 39c98613306d2abd3ee31605f4ac27f981c6cfab
1 parent 6ee0dcb commit 2d43d9c

17 files changed

+4
-817
lines changed

jstests/with_mongot/search_mocked/search_root_document_id_validation.js

Lines changed: 0 additions & 718 deletions
This file was deleted.

src/mongo/db/exec/document_value/document.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ const StringDataSet Document::allMetadataFieldNames{Document::metaFieldTextScore
103103
Document::metaFieldSearchSortValues,
104104
Document::metaFieldIndexKey,
105105
Document::metaFieldSearchScoreDetails,
106-
Document::metaFieldSearchRootDocumentId,
107106
Document::metaFieldVectorSearchScore,
108107
Document::metaFieldSearchSequenceToken,
109108
Document::metaFieldScore,
@@ -512,8 +511,6 @@ void DocumentStorage::loadLazyMetadata() const {
512511
_metadataFields.setIndexKey(elem.Obj());
513512
} else if (fieldName == Document::metaFieldSearchScoreDetails) {
514513
_metadataFields.setSearchScoreDetails(elem.Obj());
515-
} else if (fieldName == Document::metaFieldSearchRootDocumentId) {
516-
_metadataFields.setSearchRootDocumentId(elem.OID());
517514
} else if (fieldName == Document::metaFieldSearchSortValues) {
518515
_metadataFields.setSearchSortValues(elem.Obj());
519516
} else if (fieldName == Document::metaFieldVectorSearchScore) {
@@ -597,7 +594,6 @@ constexpr StringData Document::metaFieldGeoNearPoint;
597594
constexpr StringData Document::metaFieldSearchScore;
598595
constexpr StringData Document::metaFieldSearchHighlights;
599596
constexpr StringData Document::metaFieldSearchScoreDetails;
600-
constexpr StringData Document::metaFieldSearchRootDocumentId;
601597
constexpr StringData Document::metaFieldSearchSortValues;
602598
constexpr StringData Document::metaFieldVectorSearchScore;
603599
constexpr StringData Document::metaFieldScore;
@@ -630,8 +626,6 @@ void Document::toBsonWithMetaData(BSONObjBuilder* builder) const {
630626
builder->append(metaFieldIndexKey, metadata().getIndexKey());
631627
if (metadata().hasSearchScoreDetails())
632628
builder->append(metaFieldSearchScoreDetails, metadata().getSearchScoreDetails());
633-
if (metadata().hasSearchRootDocumentId())
634-
builder->append(metaFieldSearchRootDocumentId, metadata().getSearchRootDocumentId());
635629
if (metadata().hasSearchSortValues()) {
636630
builder->append(metaFieldSearchSortValues, metadata().getSearchSortValues());
637631
}

src/mongo/db/exec/document_value/document.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ class Document {
122122
static constexpr StringData metaFieldSearchScore = "$searchScore"_sd;
123123
static constexpr StringData metaFieldSearchHighlights = "$searchHighlights"_sd;
124124
static constexpr StringData metaFieldSearchScoreDetails = "$searchScoreDetails"_sd;
125-
static constexpr StringData metaFieldSearchRootDocumentId = "$searchRootDocumentId"_sd;
126125
static constexpr StringData metaFieldSearchSortValues = "$searchSortValues"_sd;
127126
static constexpr StringData metaFieldIndexKey = "$indexKey"_sd;
128127
static constexpr StringData metaFieldVectorSearchScore = "$vectorSearchScore"_sd;

src/mongo/db/exec/document_value/document_metadata_fields.cpp

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ static const std::string recordIdName = "recordId";
5757
static const std::string indexKeyName = "indexKey";
5858
static const std::string sortKeyName = "sortKey";
5959
static const std::string searchScoreDetailsName = "searchScoreDetails";
60-
static const std::string searchRootDocumentIdName = "searchRootDocumentId";
6160
static const std::string searchSequenceTokenName = "searchSequenceToken";
6261
static const std::string timeseriesBucketMinTimeName = "timeseriesBucketMinTime";
6362
static const std::string timeseriesBucketMaxTimeName = "timeseriesBucketMaxTime";
@@ -88,7 +87,6 @@ static const StringMap<MetaType> kMetaNameToMetaType = {
8887
{timeseriesBucketMinTimeName, MetaType::kTimeseriesBucketMinTime},
8988
{timeseriesBucketMaxTimeName, MetaType::kTimeseriesBucketMaxTime},
9089
{scoreDetailsName, MetaType::kScoreDetails},
91-
{searchRootDocumentIdName, MetaType::kSearchRootDocumentId},
9290
{streamName, MetaType::kStream},
9391
{changeStreamControlEventName, MetaType::kChangeStreamControlEvent},
9492
};
@@ -110,7 +108,6 @@ static const std::unordered_map<MetaType, StringData> kMetaTypeToMetaName = {
110108
{MetaType::kTimeseriesBucketMinTime, timeseriesBucketMinTimeName},
111109
{MetaType::kTimeseriesBucketMaxTime, timeseriesBucketMaxTimeName},
112110
{MetaType::kScoreDetails, scoreDetailsName},
113-
{MetaType::kSearchRootDocumentId, searchRootDocumentIdName},
114111
{MetaType::kStream, streamName},
115112
{MetaType::kChangeStreamControlEvent, changeStreamControlEventName},
116113
};
@@ -200,10 +197,6 @@ void DocumentMetadataFields::setMetaFieldFromValue(MetaType type, Value val) {
200197
assertType(BSONType::object);
201198
setSearchScoreDetails(val.getDocument().toBson());
202199
break;
203-
case DocumentMetadataFields::kSearchRootDocumentId:
204-
assertType(BSONType::oid);
205-
setSearchRootDocumentId(val.getOid());
206-
break;
207200
case DocumentMetadataFields::kTimeseriesBucketMinTime:
208201
assertType(BSONType::date);
209202
setTimeseriesBucketMinTime(val.getDate());
@@ -312,9 +305,6 @@ void DocumentMetadataFields::mergeWith(const DocumentMetadataFields& other) {
312305
if (!hasSearchScoreDetails() && other.hasSearchScoreDetails()) {
313306
setSearchScoreDetails(other.getSearchScoreDetails());
314307
}
315-
if (!hasSearchRootDocumentId() && other.hasSearchRootDocumentId()) {
316-
setSearchRootDocumentId(other.getSearchRootDocumentId());
317-
}
318308
if (!hasSearchSequenceToken() && other.hasSearchSequenceToken()) {
319309
setSearchSequenceToken(other.getSearchSequenceToken());
320310
}
@@ -372,9 +362,6 @@ void DocumentMetadataFields::copyFrom(const DocumentMetadataFields& other) {
372362
if (other.hasSearchScoreDetails()) {
373363
setSearchScoreDetails(other.getSearchScoreDetails());
374364
}
375-
if (other.hasSearchRootDocumentId()) {
376-
setSearchRootDocumentId(other.getSearchRootDocumentId());
377-
}
378365
if (other.hasSearchSequenceToken()) {
379366
setSearchSequenceToken(other.getSearchSequenceToken());
380367
}
@@ -476,10 +463,6 @@ void DocumentMetadataFields::serializeForSorter(BufBuilder& buf) const {
476463
buf.appendNum(static_cast<char>(MetaType::kSearchScoreDetails + 1));
477464
getSearchScoreDetails().appendSelfToBufBuilder(buf);
478465
}
479-
if (hasSearchRootDocumentId()) {
480-
buf.appendNum(static_cast<char>(MetaType::kSearchRootDocumentId + 1));
481-
buf.appendStruct(getSearchRootDocumentId());
482-
}
483466
if (hasSearchSequenceToken()) {
484467
buf.appendNum(static_cast<char>(MetaType::kSearchSequenceToken + 1));
485468
getSearchSequenceToken().serializeForSorter(buf);
@@ -549,8 +532,6 @@ void DocumentMetadataFields::deserializeForSorter(BufReader& buf, DocumentMetada
549532
} else if (marker == static_cast<char>(MetaType::kSearchScoreDetails) + 1) {
550533
out->setSearchScoreDetails(
551534
BSONObj::deserializeForSorter(buf, BSONObj::SorterDeserializeSettings()));
552-
} else if (marker == static_cast<char>(MetaType::kSearchRootDocumentId) + 1) {
553-
out->setSearchRootDocumentId(OID::from(buf.skip(OID::kOIDSize)));
554535
} else if (marker == static_cast<char>(MetaType::kTimeseriesBucketMinTime) + 1) {
555536
out->setTimeseriesBucketMinTime(
556537
Date_t::fromMillisSinceEpoch(buf.read<LittleEndian<long long>>()));
@@ -631,8 +612,6 @@ const char* DocumentMetadataFields::typeNameToDebugString(DocumentMetadataFields
631612
return "text score";
632613
case DocumentMetadataFields::kSearchScoreDetails:
633614
return "$search score details";
634-
case DocumentMetadataFields::kSearchRootDocumentId:
635-
return "$search root document id";
636615
case DocumentMetadataFields::kTimeseriesBucketMinTime:
637616
return "timeseries bucket min time";
638617
case DocumentMetadataFields::kTimeseriesBucketMaxTime:

src/mongo/db/exec/document_value/document_metadata_fields.h

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
#pragma once
3131

3232
#include "mongo/bson/bsonobj.h"
33-
#include "mongo/bson/oid.h"
3433
#include "mongo/bson/util/builder.h"
3534
#include "mongo/bson/util/builder_fwd.h"
3635
#include "mongo/db/exec/document_value/value.h"
@@ -84,7 +83,6 @@ class DocumentMetadataFields {
8483
kScoreDetails,
8584
kStream,
8685
kChangeStreamControlEvent,
87-
kSearchRootDocumentId,
8886

8987
// New fields must be added before the kNumFields sentinel.
9088
kNumFields
@@ -328,21 +326,6 @@ class DocumentMetadataFields {
328326
setScoreDetails(Value(details));
329327
}
330328

331-
bool hasSearchRootDocumentId() const {
332-
return _holder && _holder->metaFields.test(MetaType::kSearchRootDocumentId);
333-
}
334-
335-
OID getSearchRootDocumentId() const {
336-
invariant(hasSearchRootDocumentId());
337-
return _holder->searchRootDocumentId;
338-
}
339-
340-
void setSearchRootDocumentId(OID rootDocId) {
341-
_setCommon(MetaType::kSearchRootDocumentId);
342-
_holder->searchRootDocumentId = std::move(rootDocId);
343-
}
344-
345-
346329
bool hasTimeseriesBucketMinTime() const {
347330
return _holder && _holder->metaFields.test(MetaType::kTimeseriesBucketMinTime);
348331
}
@@ -519,7 +502,6 @@ class DocumentMetadataFields {
519502
BSONObj indexKey;
520503
RecordId recordId;
521504
BSONObj searchScoreDetails;
522-
OID searchRootDocumentId;
523505
Date_t timeseriesBucketMinTime;
524506
Date_t timeseriesBucketMaxTime;
525507
BSONObj searchSortValues;

src/mongo/db/exec/exclusion_projection_executor_test.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -374,8 +374,7 @@ TEST(ExclusionProjectionExecutionTest, ShouldEvaluateMetaExpressions) {
374374
"k: {$meta: 'sortKey'}, "
375375
"l: {$meta: 'searchScoreDetails'}, "
376376
"m: {$meta: 'vectorSearchScore'}, "
377-
"n: {$meta: 'score'}, "
378-
"o: {$meta: 'searchRootDocumentId'}}"));
377+
"n: {$meta: 'score'}}"));
379378

380379
MutableDocument inputDocBuilder(Document{{"a", 1}, {"b", 2}});
381380
inputDocBuilder.metadata().setTextScore(0.0);
@@ -416,7 +415,6 @@ TEST(ExclusionProjectionExecutionTest, MetaDependenciesFalseWhenNotIncluded) {
416415
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kIndexKey]);
417416
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSortKey]);
418417
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchScore]);
419-
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchRootDocumentId]);
420418
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchHighlights]);
421419
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchScoreDetails]);
422420
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kVectorSearchScore]);
@@ -442,7 +440,6 @@ TEST(ExclusionProjectionExecutionTest, ShouldAddSingleMetaExpressionDependency)
442440
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kIndexKey]);
443441
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSortKey]);
444442
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchScore]);
445-
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchRootDocumentId]);
446443
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchHighlights]);
447444
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchScoreDetails]);
448445
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kVectorSearchScore]);
@@ -464,8 +461,7 @@ TEST(ExclusionProjectionExecutionTest, ShouldAddMetaExpressionsToDependencies) {
464461
"k: {$meta: 'sortKey'}, "
465462
"l: {$meta: 'searchScoreDetails'}, "
466463
"m: {$meta: 'vectorSearchScore'}, "
467-
"n: {$meta: 'score'}, "
468-
"o: {$meta: 'searchRootDocumentId'}}"));
464+
"n: {$meta: 'score'}}"));
469465

470466
DepsTracker deps;
471467
exclusion->addDependencies(&deps);
@@ -480,7 +476,6 @@ TEST(ExclusionProjectionExecutionTest, ShouldAddMetaExpressionsToDependencies) {
480476
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kIndexKey]);
481477
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kSortKey]);
482478
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kSearchScore]);
483-
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kSearchRootDocumentId]);
484479
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kSearchHighlights]);
485480
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kSearchScoreDetails]);
486481
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kVectorSearchScore]);

src/mongo/db/exec/expression/evaluate_meta.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,6 @@ Value evaluate(const ExpressionMeta& expr, const Document& root, Variables* vari
7676
case DocumentMetadataFields::MetaType::kSearchScoreDetails:
7777
return metadata.hasSearchScoreDetails() ? Value(metadata.getSearchScoreDetails())
7878
: Value();
79-
case DocumentMetadataFields::MetaType::kSearchRootDocumentId:
80-
return metadata.hasSearchRootDocumentId() ? Value(metadata.getSearchRootDocumentId())
81-
: Value();
8279
case DocumentMetadataFields::MetaType::kSearchSequenceToken:
8380
return metadata.hasSearchSequenceToken() ? Value(metadata.getSearchSequenceToken())
8481
: Value();

src/mongo/db/exec/inclusion_projection_executor_test.cpp

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -831,7 +831,6 @@ TEST_F(InclusionProjectionExecutionTestWithoutFallBackToDefault,
831831
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kIndexKey]);
832832
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSortKey]);
833833
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchScore]);
834-
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchRootDocumentId]);
835834
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchHighlights]);
836835
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchScoreDetails]);
837836
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kVectorSearchScore]);
@@ -858,7 +857,6 @@ TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault,
858857
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kIndexKey]);
859858
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSortKey]);
860859
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchScore]);
861-
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchRootDocumentId]);
862860
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchHighlights]);
863861
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kSearchScoreDetails]);
864862
ASSERT_FALSE(deps.metadataDeps()[DocumentMetadataFields::kVectorSearchScore]);
@@ -881,9 +879,7 @@ TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault,
881879
"k: {$meta: 'sortKey'}, "
882880
"l: {$meta: 'searchScoreDetails'}, "
883881
"m: {$meta: 'vectorSearchScore'}, "
884-
"n: {$meta: 'score'}, "
885-
"o: {$meta: 'searchRootDocumentId'}}"));
886-
882+
"n: {$meta: 'score'}}"));
887883

888884
DepsTracker deps;
889885
inclusion->addDependencies(&deps);
@@ -898,7 +894,6 @@ TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault,
898894
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kIndexKey]);
899895
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kSortKey]);
900896
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kSearchScore]);
901-
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kSearchRootDocumentId]);
902897
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kSearchHighlights]);
903898
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kSearchScoreDetails]);
904899
ASSERT_TRUE(deps.metadataDeps()[DocumentMetadataFields::kVectorSearchScore]);
@@ -920,9 +915,7 @@ TEST_F(InclusionProjectionExecutionTestWithFallBackToDefault, ShouldEvaluateMeta
920915
"k: {$meta: 'sortKey'}, "
921916
"l: {$meta: 'searchScoreDetails'}, "
922917
"m: {$meta: 'vectorSearchScore'}, "
923-
"n: {$meta: 'score'}, "
924-
"o: {$meta: 'searchRootDocumentId'}}"));
925-
918+
"n: {$meta: 'score'}}"));
926919

927920
MutableDocument inputDocBuilder(Document{{"a", 1}});
928921
inputDocBuilder.metadata().setTextScore(0.0);

src/mongo/db/pipeline/dependencies.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ static const std::set<DocumentMetadataFields::MetaType> kMetadataFieldsToBeStric
6262
DocumentMetadataFields::MetaType::kGeoNearPoint,
6363
DocumentMetadataFields::MetaType::kScore,
6464
DocumentMetadataFields::MetaType::kScoreDetails,
65-
DocumentMetadataFields::MetaType::kSearchRootDocumentId,
6665
};
6766
} // namespace
6867

src/mongo/db/pipeline/dependencies_test.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ TEST(DependenciesNeedsMetadataTest, OnlyChosenMetadataFieldsShouldThrowIfUnavail
124124
DocumentMetadataFields::MetaType::kGeoNearPoint,
125125
DocumentMetadataFields::MetaType::kScore,
126126
DocumentMetadataFields::MetaType::kScoreDetails,
127-
DocumentMetadataFields::MetaType::kSearchRootDocumentId,
128127
};
129128

130129
DepsTracker deps(DepsTracker::kNoMetadata);

0 commit comments

Comments
 (0)