summaryrefslogtreecommitdiff
path: root/src/mongo/db/matcher
diff options
context:
space:
mode:
authorAlya Berciu <alyacarina@gmail.com>2021-05-06 10:09:11 +0100
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-05-13 08:53:21 +0000
commitfe74857f35267a767de40da27ce5e67aa83f4bba (patch)
tree1c4abb9578072e2e8f7ace43fc2cba538e44b480 /src/mongo/db/matcher
parent952e709824d58eddff659c9ff31da69fa839470b (diff)
downloadmongo-fe74857f35267a767de40da27ce5e67aa83f4bba.tar.gz
SERVER-49118 Update error messages for operations that reject fieldnames with '.' and '$'
Diffstat (limited to 'src/mongo/db/matcher')
-rw-r--r--src/mongo/db/matcher/expression_parser.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mongo/db/matcher/expression_parser.cpp b/src/mongo/db/matcher/expression_parser.cpp
index fad7bec68b5..0dc18343ca5 100644
--- a/src/mongo/db/matcher/expression_parser.cpp
+++ b/src/mongo/db/matcher/expression_parser.cpp
@@ -282,9 +282,14 @@ StatusWithMatchExpression parse(const BSONObj& obj,
auto parseExpressionMatchFunction = retrievePathlessParser(name);
if (!parseExpressionMatchFunction) {
+ const auto dotsAndDollarsHint =
+ feature_flags::gFeatureFlagDotsAndDollars.isEnabledAndIgnoreFCV()
+ ? ". If you have a field name that starts with a '$' symbol, consider using "
+ "$getField or $setField."
+ : "";
return {Status(ErrorCodes::BadValue,
- str::stream()
- << "unknown top level operator: " << e.fieldNameStringData())};
+ str::stream() << "unknown top level operator: "
+ << e.fieldNameStringData() << dotsAndDollarsHint)};
}
auto parsedExpression = parseExpressionMatchFunction(