summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/value.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/value.h')
-rw-r--r--src/mongo/db/pipeline/value.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/db/pipeline/value.h b/src/mongo/db/pipeline/value.h
index c77ccc2239a..9a36661e7b5 100644
--- a/src/mongo/db/pipeline/value.h
+++ b/src/mongo/db/pipeline/value.h
@@ -192,6 +192,8 @@ public:
int getInt() const;
long long getLong() const;
UUID getUuid() const;
+ // The returned BSONBinData remains owned by this Value.
+ BSONBinData getBinData() const;
const std::vector<Value>& getArray() const {
return _storage.getArray();
}
@@ -460,4 +462,10 @@ inline UUID Value::getUuid() const {
auto stringData = _storage.getString();
return UUID::fromCDR({stringData.rawData(), stringData.size()});
}
+
+inline BSONBinData Value::getBinData() const {
+ verify(getType() == BinData);
+ auto stringData = _storage.getString();
+ return BSONBinData(stringData.rawData(), stringData.size(), _storage.binDataType());
+}
};