Get Free Trial
API reference
Table of contents

MappingObject

The MappingObject allows defining field data types, captions, and multilevel hierarchies; grouping fields under separate dimensions, and setting other view configurations of hierarchies.

The MappingObject is available for all data sources. It presents a powerful way to neatly separate a data source from its presentation. Find more details about the MappingObject in this tutorial with examples.

Available properties

The MappingObject has the following properties:

Property/Type Description
(uniqueName)
FieldMappingObject | FieldMappingObject[]
Allows setting the mapping for a specific field from the dataset. (uniqueName) is the field’s unique name.
Specify the mapping as the FieldMappingObject to set it for a certain field. See an example on JSFiddle.
For "json" and "csv" data source types, it is possible to create several fields from a certain field. It can be done by specifying the mapping as an array of FieldMappingObjects, where each object is a new field. Learn more in our guide.
aggregations
AggregationsObject
optional Available aggregation functions for all fields of a certain type. See an example on JSFiddle. Only for "json" and "csv" data source types.
See a list of supported aggregations in Flexmonster’s technical specifications.
To learn more about defining aggregations for fields of a certain type, refer to our guide.
Note Available aggregations for a certain field can be defined in the (uniqueName).aggregations property.

FieldMappingObject

Property/Type Description
caption
String
optional The field’s caption.
type
String
optional The field’s data type. Only for "json", "csv", and "api" data source types. The type can be:
  • "string" — The field stores string data.
  • "number" — The field stores numerical data. It can be aggregated with all available aggregations.
  • "month" — The field stores months. Note that if the field stores month names only (in either short or full form), the field will be recognized by Flexmonster as a field of the "month" type automatically. If the field contains custom month names, specify its type as "month" explicitly.
  • "weekday" — The field stores days of the week.
  • "date" — The field stores a date. Fields of this type are split into 3 different fields: Year, Month, Day. Only for "json" and "csv" data source types.
  • "year/month/day" — The field stores a date. It’s displayed as a multilevel hierarchy with the following levels: Year > Month > Day. Only for "json" and "csv" data source types.
  • "year/quarter/month/day" — The field is a date. It’s displayed as a multilevel hierarchy with the following levels: Year > Quarter > Month > Day. Only for "json" and "csv" data source types.
  • "date string" — The field stores a date. Fields of this type are represented as strings and can be used in rows, columns, or report filters. The component sorts members of such a field as dates.
    Note that by default, "date string" fields are rounded down with the "1d" interval  (i.e., "04/25/2021T21:30:05" is rounded down to "04/25/2021T00:00:00"). If needed, you can set a custom interval for a field. Learn more about intervals.
    Fields of the "date string" type can be formatted using the datePattern option (the default pattern is "dd/MM/yyyy").
  • "datetime" — The field stores a date. You can select fields of this type for values.
    Fields of the "datetime" type can be formatted using the dateTimePattern option (the default pattern is "dd/MM/yyyy HH:mm:ss").
  • "time" — The field stores time. The "time" type is used for fields that store a time interval (e.g., duration or elapsed time), which is not related to a specific date.
    Fields of this type can be formatted using the timePattern option (the default pattern is "HH:mm:ss").
  • "id" — The field is an id. This field is not shown in the Field List. Fields of this type can be used for editing data.
  • "property" — The field for setting member properties. This field is not shown in the Field List. For example, it can be used to associate a productID with a product. See an example here.
hierarchy
String
optional The hierarchy’s name. When configuring hierarchies, specify this property to mark the field as a level of a hierarchy or as a member property of a hierarchy (in this case, the type parameter should be set to "property").
Only for "json", "csv", and "api" data source types.
See how to configure multilevel hierarchies.
parent
String
optional The unique name of the parent level. This property is necessary if the field is a level of a hierarchy and has a parent level.
Only for "json", "csv", and "api" data source types.
See how to configure multilevel hierarchies.
folder
String
optional The field’s folder. Folders are used to group several fields in the Field List. folder supports nesting via / (e.g., "Folder/Subfolder/").
Only for "json", "csv", and "api" data source types.
aggregations
String[]
optional This property represents the list of aggregation functions that can be applied to the current measure.
For "csv" and "json" data source types, you can also define available aggregations for all fields of a certain type.
filters
Boolean
optional This property allows enabling and disabling the UI filters for a specific hierarchy. When set to false, the UI filters are disabled.
Default value: true.
visible
Boolean
optional When set to false, hides the field from the Field List.
Only for "elasticsearch", "json", "csv", and "api" data source types.
interval
String
optional Allows rounding down dates by the given interval. For example, if the interval is "1d", 2021-05-25T21:30:00 will be rounded to 2021-05-25T00:00:00. See an example on JSFiddle.
The interval property can be used in the following ways:
  • For the "date string" and "datetime" field types. Supported date intervals are the following:
    • "y" for one year (e.g., "y").
    • "q" for one quarter (e.g., "q").
    • "M" for one month (e.g., "M").
    • "w" for one week (e.g., "w").
    • "d" for days (e.g., "1d"). Note that rounding by days starts from 1 January 1970.
    • "h" for hours (e.g., "7h").
    • "m" for minutes (e.g., "20m").
    • "s" for seconds (e.g., "30s").
    Note that "y", "q", "M", and "w" intervals should be used without numbers. Only for "csv" and "json" data source types.
  • For the date histogram in Elasticsearch. Check out the list of supported intervals.
    Note that the interval was deprecated in Elasticsearch version 7.2 and removed in version 8. If your Elasticsearch version is higher than 7.2, use either calendar_interval or fixed_interval properties instead of the interval.
    Only for the "elasticsearch" data source type.
calendar_interval
String
optional Sets the Elasticsearch’s calendar_interval parameter for the date histogram. This parameter allows rounding down dates by the given interval. For example, if the calendar_interval is "day", 2021-05-25T19:30:00 will be rounded to 2021-05-25T00:00:00. See an example on JSFiddle.
See the list of supported intervals: Calendar intervals.
Only for Elasticsearch version 7.2 and higher.
Default value: "day".
fixed_interval
String
optional Sets the Elasticsearch’s fixed_interval parameter for the date histogram. This parameter allows rounding down dates by the given interval. For example, if the fixed_interval is "3h", 2021-05-25T19:30:00 will be rounded to 2021-05-25T18:00:00. See an example on JSFiddle.
See the list of supported intervals: Fixed intervals.
Only for Elasticsearch version 7.2 and higher.
isMeasure
Boolean
optional When set to true, the field can be selected only as a measure. The isMeasure property should be used only with the strictDataTypes option (see an example on JSFiddle). Only for the "json" data source type.
Default value: false.
time_zone
String
optional Used for the date histogram. You can specify time zones as either an ISO 8601 UTC offset (e.g., +01:00 or -08:00) or as a time zone ID as specified in the IANA time zone database, such as America/Los_Angeles. Check out an example here.
Only for the "elasticsearch" data source type.
format
String
optional Used to format different types of date fields. The format can be used in the following ways:
  • For the date histogram in Elasticsearch. The date format/pattern is described in the Elasticsearch documentation. Try a live sample on JSFiddle.
    If the datePattern option is defined, format will override its value for the field.
    Only for the "elasticsearch" data source type.
  • For a field of the "date string" type, it allows overriding the datePattern set in the OptionsObject. The pattern string for the format is the same as in the datePattern option (i.e., "dd/MM/yyyy"). Only for "json", "csv", and "api" data source types. Learn more about date and time formatting.
  • For a field of the "datetime" type, it allows overriding the dateTimePattern set in the OptionsObject. The pattern string for the format is the same as in the dateTimePattern option (i.e., "dd/MM/yyyy HH:mm:ss"). Only for "json", "csv", and "api" data source types. Learn more about date and time formatting.
  • For a field of the "time" type, it allows overriding the timePattern set in the OptionsObject. The pattern string for the format is the same as in the timePattern option (i.e., "HH:mm:ss"). Only for "json", "csv", and "api" data source types. Learn more about date and time formatting.
min_doc_count
Number
optional Used for the Elasticsearch date histogram. Can be used to show intervals with empty values (min_doc_count: 0).
Only for the "elasticsearch" data source type.
Default value: 1 (empty intervals are hidden).

AggregationsObject

Property/Type Description
date
String[]
optional Available aggregation functions for the "date string" field type.
number
String[]
optional Available aggregation functions for the "number" field type.
string
String[]
optional Available aggregation functions for the "string" field type.
time
String[]
optional Available aggregation functions for the "time" field type.

See also

Mapping guide