Known differences
- FerretDB uses the same protocol error names and codes, but the exact error messages may be different in some cases.
- FerretDB does not support NUL (
\0
) characters in strings. - FerretDB does not support nested arrays.
- FerretDB converts
-0
(negative zero) to0
(positive zero). - Document restrictions:
- document keys must not contain
.
sign; - document keys must not start with
$
sign; - document fields of double type must not contain
Infinity
,-Infinity
, orNaN
values.
- document keys must not contain
- When insert command is called, insert documents must not have duplicate keys.
- Update command restrictions:
- update operations producing
Infinity
,-Infinity
, orNaN
are not supported.
- update operations producing
- Database and collection names restrictions:
- name cannot start with the reserved prefix
_ferretdb_
; - database name must not include non-latin letters, spaces, dots, dollars;
- collection name must not include non-latin letters, spaces, dots or dollars;
- name must not start with a number;
- database name cannot contain capital letters;
- database name length cannot be more than 63 characters;
- collection name length cannot be more than 120 characters.
- name cannot start with the reserved prefix
- For Tigris, FerretDB requires Tigris schema validation for
create
command: validator must be set as$tigrisSchemaString
. The value must be a JSON string representing JSON schema in Tigris format.
If you encounter some other difference in behavior, please join our community to report a problem.