BSON_ ARRAY_ SLICE
On this page
Slices the input array and returns a subset.
This function returns the specified number of elements from a BSON array starting from a specified position in the array (zero-based index).
Syntax
BSON_ARRAY_SLICE(<input>, <position>, <n>)
Arguments
-
<input>
: A valid BSON array or an expression that evaluates to a valid BSON array. -
<position>
: An integer or an expression that evaluates to an integer.It specifies the index at which the array slicing starts. A positive value indicates the start of an array, and a negative value indicates that the starting position is calculated from the end of an array (in reverse order). -
<n>
: An integer or an expression that evaluates to an integer.It specifies the number of array items to return.
Return Type
A BSON array.
Remarks
-
If the specified
<position>
is a positive integer that exceeds the bounds of an array, returns an empty array. -
If the specified
<position>
is a negative integer that exceeds the bounds of an array, slicing starts at the0
index, the starting position in the array. -
BSON_
returnsARRAY_ SLICE() NULL
if:-
<input>
is SQLNULL
, BSONNULL
, or BSONundefined
. -
<n>
is SQLNULL
, BSONNULL
, or BSONundefined
.
-
Examples
Note: The following examples explicitly cast string to BSON for clarity.
The following example returns 3 elements from the array starting at 0
index.
SELECT BSON_ARRAY_SLICE('[0,1,2,3,4,5]':>BSON, 0,3):>JSON AS Result;
+---------+
| Result |
+---------+
| [0,1,2] |
+---------+
The following example returns 3 elements from the array starting from the third element at the end.
SELECT BSON_ARRAY_SLICE('[0,1,2,3,4,5]':>BSON, -3,3):>JSON AS Result;
+---------+
| Result |
+---------+
| [3,4,5] |
+---------+
The following example returns an empty array because the specified index is positive and out of array bounds.
SELECT BSON_ARRAY_SLICE('[0,1,2,3,4,5]':>BSON, 10,3):>JSON AS Result;
+--------+
| Result |
+--------+
| [] |
+--------+
The following example returns the first three elements of the array because the specified index is negative and out of array bounds.
SELECT BSON_ARRAY_SLICE('[0,1,2,3,4,5]':>BSON, -6,3):>JSON AS Result;
+---------+
| Result |
+---------+
| [0,1,2] |
+---------+
Last modified: May 8, 2024