Docs Home → Develop Applications → MongoDB Manual
$split (aggregation)
On this page
Definition
-
$split
-
Divides a string into an array of substrings based on a delimiter.
$split
removes the delimiter and returns the resulting substrings as elements of an array. If the delimiter is not found in the string,$split
returns the original string as the only element of an array.$split
has the following operator expression syntax :{ $split: [ <string expression>, <delimiter> ] } FieldTypeDescriptionstring expression
stringThe string to be split.string expression
can be any valid expression as long as it resolves to a string. For more information on expressions, see Expression Operators .delimiter
stringThe delimiter to use when splitting the string expression.delimiter
can be any valid expression as long as it resolves to a string.
Behavior
The
$split
operator returns an array.
The
<string expression>
and
<delimiter>
inputs must both be
strings. Otherwise, the operation fails with an error.
Example
|
Results
|
||
---|---|---|---|
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
{ $split: [ "headphone jack", 7 ] }
|
Errors with message:
|
||
{ $split: [ "headphone jack", /jack/ ] }
|
Errors with message:
|
Example
A collection named
deliveries
contains the following documents:
{ "_id" : 1, "city" : "Berkeley, CA", "qty" : 648 } { "_id" : 2, "city" : "Bend, OR", "qty" : 491 } { "_id" : 3, "city" : "Kensington, CA", "qty" : 233 } { "_id" : 4, "city" : "Eugene, OR", "qty" : 842 } { "_id" : 5, "city" : "Reno, NV", "qty" : 655 } { "_id" : 6, "city" : "Portland, OR", "qty" : 408 } { "_id" : 7, "city" : "Sacramento, CA", "qty" : 574 }
The goal of following aggregation operation is to find the total quantity of deliveries for each state and sort the list in descending order. It has five pipeline stages: