summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_path_support.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/document_path_support.cpp')
-rw-r--r--src/mongo/db/pipeline/document_path_support.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/mongo/db/pipeline/document_path_support.cpp b/src/mongo/db/pipeline/document_path_support.cpp
index a57d0496a1d..eeb0831b55d 100644
--- a/src/mongo/db/pipeline/document_path_support.cpp
+++ b/src/mongo/db/pipeline/document_path_support.cpp
@@ -136,19 +136,18 @@ StatusWith<Value> extractElementAlongNonArrayPath(const Document& doc, const Fie
return curValue;
}
-BSONObj documentToBsonWithPaths(const Document& input, const std::set<std::string>& paths) {
- BSONObjBuilder outputBuilder;
+void documentToBsonWithPaths(const Document& input,
+ const OrderedPathSet& paths,
+ BSONObjBuilder* builder) {
for (auto&& path : paths) {
// getNestedField does not handle dotted paths correctly, so instead of retrieving the
// entire path, we just extract the first element of the path.
const auto prefix = FieldPath::extractFirstFieldFromDottedPath(path);
- if (!outputBuilder.hasField(prefix)) {
+ if (!builder->hasField(prefix)) {
// Avoid adding the same prefix twice.
- input.getField(prefix).addToBsonObj(&outputBuilder, prefix);
+ input.getField(prefix).addToBsonObj(builder, prefix);
}
}
-
- return outputBuilder.obj();
}
} // namespace document_path_support