diff --git a/docs/database/mongodb.mdx b/docs/database/mongodb.mdx index 4febdf4149..c6fcdd45c3 100644 --- a/docs/database/mongodb.mdx +++ b/docs/database/mongodb.mdx @@ -50,3 +50,11 @@ You can access Mongoose models as follows: - Collection models - `payload.db.collections[myCollectionSlug]` - Globals model - `payload.db.globals` - Versions model (both collections and globals) - `payload.db.versions[myEntitySlug]` + +## Using other MongoDB implementations +Limitations with [DocumentDB](https://aws.amazon.com/documentdb/) and [Azure Cosmos DB](https://azure.microsoft.com/en-us/products/cosmos-db): + +* For Azure Cosmos DB you must pass `transactionOptions: false` to the adapter options. Azure Cosmos DB does not support transactions that update two and more documents in different collections, which is a common case when using Payload (via hooks). +* For Azure Cosmos DB the root config property `indexSortableFields` must be set to `true`. +* The [Join Field](../fields/join) is not supported in DocumentDB and Azure Cosmos DB, as we internally use MongoDB aggregations to query data for that field, which are limited there. This can be changed in the future. +* For DocumentDB pass `disableIndexHints: true` to disable hinting to the DB to use `id` as index which can cause problems with DocumentDB. \ No newline at end of file diff --git a/docs/fields/join.mdx b/docs/fields/join.mdx index 2a80619f04..6c006a03e0 100644 --- a/docs/fields/join.mdx +++ b/docs/fields/join.mdx @@ -62,6 +62,10 @@ of relationship types in an easy manner. The Join field is extremely performant and does not add additional query overhead to your API responses until you add depth of 1 or above. It works in all database adapters. In MongoDB, we use **aggregations** to automatically join in related documents, and in relational databases, we use joins. + + The Join Field is not supported in [DocumentDB](https://aws.amazon.com/documentdb/) and [Azure Cosmos DB](https://azure.microsoft.com/en-us/products/cosmos-db), as we internally use MongoDB aggregations to query data for that field, which are limited there. This can be changed in the future. + + ### Schema advice When modeling your database, you might come across many places where you'd like to feature bi-directional relationships.