Important
The SingleStore 9.1 release candidate (RC) gives you the opportunity to preview, evaluate, and provide feedback on new and upcoming features prior to their general availability. In the interim, SingleStore 9.0 is recommended for production workloads, which can later be upgraded to SingleStore 9.1.
BSON_ EXTRACT_ DOUBLE
On this page
Extracts the numeric value for the specified key from the BSON data, converts it to the SingleStore DOUBLE type, and returns the value.
Syntax
BSON_EXTRACT_DOUBLE(<input> [, path_key_1, path_key_2,.., path_key_n])Arguments
-
<input>: A valid BSON document or an expression that evaluates to a valid BSON document. -
<path>: A comma-separated list of dictionary keys or array positions (zero-based index).
Return Type
SingleStore DOUBLE type.
Remarks
-
The BSON
INT32,INT64, andDOUBLE(exceptNaN, +infinity, or -infinity) types are returned as is. -
BSON
DECIMAL128type is typecast using the Intel RDFP Library.If the converted value is out of range, NULLis returned. -
Returns
NULLif:-
The extracted value is out of range, a non-numeric BSON type,
NaN, +infinity, or -infinity. -
The specified path does not exist.
-
Examples
Note: The following examples explicitly cast string to BSON for clarity.
The following example extracts a BSON INT32 type:
SELECT BSON_EXTRACT_DOUBLE('{"a":{"b":10}}':>BSON, 'a', 'b') AS Result;
+--------+
| Result |
+--------+
| 10 |
+--------+The following example extracts a BSON INT64 type:
SELECT BSON_EXTRACT_DOUBLE('{"a":{"b":{"$numberLong":"10"}}}':>BSON, 'a', 'b') AS Result;
+--------+
| Result |
+--------+
| 10 |
+--------+The following examples extract a BSON DOUBLE type:
SELECT BSON_EXTRACT_DOUBLE('{"a":{"b":{"$numberDouble":"922337203685477586.9"}}}':>BSON, 'a', 'b') AS Result;
+----------------------+
| Result |
+----------------------+
| 9.223372036854776e17 |
+----------------------+SELECT BSON_EXTRACT_DOUBLE('{"a":{"b":{"$numberDouble":"NaN"}}}':>BSON, 'a', 'b') AS Result;
+--------+
| Result |
+--------+
| NULL |
+--------+The following example extracts a BSON DECIMAL type:
SELECT BSON_EXTRACT_DOUBLE('{"a":{"b":{"$numberDecimal":"-9223372036854775807.9"}}}':>BSON, 'a', 'b')AS Result;
+-----------------------+
| Result |
+-----------------------+
| -9.223372036854776e18 |
+-----------------------+Last modified: April 3, 2024