summaryrefslogtreecommitdiff
path: root/src/mongo/db/matcher/expression_geo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/matcher/expression_geo.cpp')
-rw-r--r--src/mongo/db/matcher/expression_geo.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/mongo/db/matcher/expression_geo.cpp b/src/mongo/db/matcher/expression_geo.cpp
index f229eec42c2..e73efdca1db 100644
--- a/src/mongo/db/matcher/expression_geo.cpp
+++ b/src/mongo/db/matcher/expression_geo.cpp
@@ -364,7 +364,11 @@ bool GeoMatchExpression::matchesSingleElement(const BSONElement& e) const {
void GeoMatchExpression::debugString(StringBuilder& debug, int level) const {
_debugAddSpace(debug, level);
- debug << "GEO raw = " << _rawObj.toString();
+
+ BSONObjBuilder builder;
+ serialize(&builder);
+ debug << "GEO raw = " << builder.obj().toString();
+
MatchExpression::TagData* td = getTag();
if (NULL != td) {
debug << " ";
@@ -374,7 +378,9 @@ void GeoMatchExpression::debugString(StringBuilder& debug, int level) const {
}
void GeoMatchExpression::serialize(BSONObjBuilder* out) const {
- out->appendElements(_rawObj);
+ BSONObjBuilder subobj(out->subobjStart(path()));
+ subobj.appendElements(_rawObj);
+ subobj.doneFast();
}
bool GeoMatchExpression::equivalent(const MatchExpression* other) const {
@@ -431,7 +437,9 @@ void GeoNearMatchExpression::debugString(StringBuilder& debug, int level) const
}
void GeoNearMatchExpression::serialize(BSONObjBuilder* out) const {
- out->appendElements(_rawObj);
+ BSONObjBuilder subobj(out->subobjStart(path()));
+ subobj.appendElements(_rawObj);
+ subobj.doneFast();
}
bool GeoNearMatchExpression::equivalent(const MatchExpression* other) const {