diff options
Diffstat (limited to 'src/mongo/db/pipeline/value.h')
-rw-r--r-- | src/mongo/db/pipeline/value.h | 8 |
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()); +} }; |