# BSON\_NORMALIZE\_\*

Normalizing BSON documents allows you to perform the following operations with improved performance:

* Cross-type comparison for numeric types.
* Compare across multiple data types, as defined in [Comparison/Sort Order](https://www.mongodb.com/docs/manual/reference/bson-type-comparison-order/).
* Build indexes using normalized computed columns.
* Sort and hash BSON documents.

This is a set of four BSON functions that normalize BSON documents.

* `BSON_NORMALIZE()`: Normalizes the BSON document for equality comparisons (such as `$eq`).
* `BSON_NORMALIZE_ASC()`: Normalizes the BSON document for ascending sort or less than comparisons, (such as `$lt`). For arrays, the smallest element is selected.
* `BSON_NORMALIZE_DESC()`: Normalizes the BSON document for descending sort or greater than comparisons, (such as `$gt`). For arrays, the largest element is selected.
* `BSON_NORMALIZE_NO_ARRAY()`: Similar to `BSON_NORMALIZE()`, it normalizes the BSON document for equality comparisons (such as `$eq`), but returns an error if the BSON document contains an array at any level.

## Syntax

```
BSON_NORMALIZE(<bson_input>)

BSON_NORMALIZE_ASC(<bson_input>)

BSON_NORMALIZE_DESC(<bson_input>)

BSON_NORMALIZE_NO_ARRAY(<bson_input>)
```

## Argument

`<bson_input>`: A valid BSON document or an expression that evaluates to a valid BSON document.

## Examples

**Note**: The following example explicitly casts a string to BSON for clarity.

```sql
SELECT BSON_NORMALIZE('0':>BSON) = BSON_NORMALIZE('{"$numberDouble":"0"}':>BSON) AS Result;

```

```output

+--------+
| Result |
+--------+
|      1 |
+--------+
```

***

Modified at: May 8, 2024

Source: [/cloud/reference/sql-reference/bson-functions/bson-normalize/](https://docs.singlestore.com/cloud/reference/sql-reference/bson-functions/bson-normalize/)

(An index of the documentation is available at /llms.txt)
