CARVIEW |
unnest
Use unnest
to flatten a list taken as input to produce
multiple records with a single record for each element in the list. Based on
the number of items a field contains, this command discards the current
record and generates new records. Each record includes the
unnested_field
, which represents an item. All other fields
come from the original record.
The input for unnest
is LIST
, which comes from
the jsonParse
function. For more information, see Structure types. Any other types, such as MAP
,
String
and numbers
, are treated as a list with
one item in unnest
.
Command structure
The following example describes the format of this command.
unnest field into unnested_field
Example query
The following example parses a JSON object string and expands a list of field events.
fields jsonParse(@message) as json_message | unnest json_message.events into event | display event.name
The log event for this example query could be a JSON string as follows:
{ "events": [ { "name": "exception" }, { "name": "user action" } ] }
In this case, the sample query produces two records in the query result,
one with event.name
as exception
and another with
event.name
as user action
Example query
The following example flattens a list and then filters out items.
fields jsonParse(@message) as js | unnest js.accounts into account | filter account.type = "internal"
Example query
The following example flattens a list for aggregation.
fields jsonParse(trimmedData) as accounts | unnest accounts into account | stats sum(account.droppedSpans) as n by account.accountId | sort n desc | limit 10
Thanks for letting us know we're doing a good job!
If you've got a moment, please tell us what we did right so we can do more of it.
Thanks for letting us know this page needs work. We're sorry we let you down.
If you've got a moment, please tell us how we can make the documentation better.