summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_geo_near.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
commit4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch)
tree1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/db/pipeline/document_source_geo_near.cpp
parentaa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff)
parent8f0827553e09872941945a093b647a4211a9db7f (diff)
Update upstream source from tag 'upstream/6.0.0'master
Update to upstream version '6.0.0' with Debian dir 5604a80ec1c96ca76f25f40d78e6ef855abec322
Diffstat (limited to 'src/mongo/db/pipeline/document_source_geo_near.cpp')
-rw-r--r--src/mongo/db/pipeline/document_source_geo_near.cpp27
1 files changed, 11 insertions, 16 deletions
diff --git a/src/mongo/db/pipeline/document_source_geo_near.cpp b/src/mongo/db/pipeline/document_source_geo_near.cpp
index dc4aa5f8be6..1ee840df794 100644
--- a/src/mongo/db/pipeline/document_source_geo_near.cpp
+++ b/src/mongo/db/pipeline/document_source_geo_near.cpp
@@ -57,45 +57,40 @@ REGISTER_DOCUMENT_SOURCE(geoNear,
DocumentSourceGeoNear::createFromBson,
AllowedWithApiStrict::kAlways);
-Value DocumentSourceGeoNear::serialize(const SerializationOptions& opts) const {
+Value DocumentSourceGeoNear::serialize(boost::optional<ExplainOptions::Verbosity> explain) const {
MutableDocument result;
if (keyFieldPath) {
- result.setField(kKeyFieldName, Value(opts.serializeFieldPath(*keyFieldPath)));
+ result.setField(kKeyFieldName, Value(keyFieldPath->fullPath()));
}
auto nearValue = [&]() -> Value {
if (auto constGeometry = dynamic_cast<ExpressionConstant*>(_nearGeometry.get());
constGeometry) {
- return opts.serializeLiteral(constGeometry->getValue());
+ return constGeometry->getValue();
} else {
- return _nearGeometry->serialize(opts);
+ return _nearGeometry->serialize(static_cast<bool>(explain));
}
}();
result.setField("near", nearValue);
- result.setField("distanceField", Value(opts.serializeFieldPath(*distanceField)));
+ result.setField("distanceField", Value(distanceField->fullPath()));
if (maxDistance) {
- result.setField("maxDistance", opts.serializeLiteral(*maxDistance));
+ result.setField("maxDistance", Value(*maxDistance));
}
if (minDistance) {
- result.setField("minDistance", opts.serializeLiteral(*minDistance));
+ result.setField("minDistance", Value(*minDistance));
}
- if (opts.transformIdentifiers || opts.literalPolicy != LiteralSerializationPolicy::kUnchanged) {
- auto matchExpr = uassertStatusOK(MatchExpressionParser::parse(query, pExpCtx));
- result.setField("query", Value(matchExpr->serialize(opts)));
- } else {
- result.setField("query", Value(query));
- }
- result.setField("spherical", opts.serializeLiteral(spherical));
+ result.setField("query", Value(query));
+ result.setField("spherical", Value(spherical));
if (distanceMultiplier) {
- result.setField("distanceMultiplier", opts.serializeLiteral(*distanceMultiplier));
+ result.setField("distanceMultiplier", Value(*distanceMultiplier));
}
if (includeLocs)
- result.setField("includeLocs", Value(opts.serializeFieldPath(*includeLocs)));
+ result.setField("includeLocs", Value(includeLocs->fullPath()));
return Value(DOC(getSourceName() << result.freeze()));
}