JSON_AGG and JSON_COMPOSE are similar functions that package a variable number of input parameters into a JSON document. Both commands use the same syntax and input parameters.
The difference is JSON_AGG is an aggregate function and JSON_COMPOSE is a scalar function. JSON_COMPOSE can call JSON_AGG to provide a more complex composition of a JSON document than the JSON_AGG function can do by itself.
You cannot use JSON_AGG or JSON_COMPOSE to publish data to the BSON or UBJSON format. To publish data in one of these binary formats, you can do one of the following:
- Use JSON_PUBLISH instead of JSON_AGG or JSON_COMPOSE.
- Use JSON_AGG or JSON_COMPOSE to create a JSON document, and then convert that document to BSON or UBJSON using a cast expression or the AsBSON method.