From 8d6272e580c216ff3e1aaf2d306d3d192b3562db Mon Sep 17 00:00:00 2001 From: Mike Woofter Date: Tue, 12 Dec 2023 09:49:00 -0600 Subject: [PATCH 1/8] first draft --- source/cosmosdb-support.txt | 74 ++++++++++++++++++++++++++++++++++++ source/figures/cosmosdb.png | Bin 0 -> 44857 bytes 2 files changed, 74 insertions(+) create mode 100644 source/cosmosdb-support.txt create mode 100644 source/figures/cosmosdb.png diff --git a/source/cosmosdb-support.txt b/source/cosmosdb-support.txt new file mode 100644 index 000000000..8d7e70f7c --- /dev/null +++ b/source/cosmosdb-support.txt @@ -0,0 +1,74 @@ +.. _cosmosdb-compat: + +============================= +Azure Cosmos DB Compatibility +============================= + +.. facet:: + :name: genre + :values: reference + +.. meta:: + :keywords: microsoft, support + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + +.. figure:: /figures/cosmosdb.png + :alt: Azure Cosmos DB logo + +`Azure Cosmos DB for MongoDB `__ +makes it easy to use Azure Cosmos DB as if it were a MongoDB database. +With Azure Cosmos DB, you can run the same application code and use the same drivers +and tools that you use with MongoDB. + +Though Azure Cosmos DB for MongoDB implements MongoDB's +`Wire Protocol `__ +to allow MongoDB's `drivers `__ to connect and +interact with Cosmos DB as though it were a MongoDB host, this +implementation has limitations. + +Version Information +------------------- + +Azure Cosmos DB supports MongoDB v4.2, or MongoDB v5.0 for vCore clusters. +These versions don't support all the newer features and functionality in the versions of +MongoDB available on `MongoDB Atlas. `__. + +.. tip:: MongoDB Version History + + To learn more about the features available in each version of MongoDB, see + `MongoDB Evolved - Version History. `__ + +Compatibility +------------- + +As of October 2023, Azure Cosmos DB is about 32 percent compatible with the +MongoDB API. + +On Azure Cosmos DB for MongoDB v4.2, the following MongoDB v4.2 features are +available in a limited capacity or are not supported at all: + +- **Features**: `Text indexes `__, + `2d indexes `__, + `hashed indexes `__, + `case-insensitive indexes `__, + `sparse indexes `__ +- **Aggregation Stages**: ``$collStats``, ``$bucket``, ``$bucketAuto``, ``$currentOp``, + ``$indexStats``, ``$listLocalSessions``, ``$listSessions``, ``$lookup`` + +To learn more about Azure Cosmos DB's compatibility with MongoDB v4.2, +see the following Microsoft documentation: + +- `Azure Cosmos DB for MongoDB (4.2 server version): Supported features and syntax `__ + +For the most current compatibility status between Azure Cosmos DB and MongoDB, see +`Is Cosmos DB Compatible with MongoDB Atlas? `__ + +Support +------- + +MongoDB doesn't offer commercial support for Azure Cosmos DB. For help with this product, +contact `Azure Support. `__ diff --git a/source/figures/cosmosdb.png b/source/figures/cosmosdb.png new file mode 100644 index 0000000000000000000000000000000000000000..6a4c334cbed4061893c4a51c125aa884557ac90e GIT binary patch literal 44857 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 z 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 GkpBa?5hLsX literal 0 HcmV?d00001 From 46af46596d89f3fa5e9edaa23d6411b6cac98af9 Mon Sep 17 00:00:00 2001 From: Mike Woofter Date: Tue, 12 Dec 2023 12:12:47 -0600 Subject: [PATCH 2/8] add links --- source/index.txt | 1 + source/other-document-dbs.txt | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 source/other-document-dbs.txt diff --git a/source/index.txt b/source/index.txt index 432988de4..b79b50301 100644 --- a/source/index.txt +++ b/source/index.txt @@ -150,6 +150,7 @@ See the following pages for information about other document databases' compatib with MongoDB: - :ref:`documentdb-compat` +- :ref:`cosmosdb-compat` .. toctree:: diff --git a/source/other-document-dbs.txt b/source/other-document-dbs.txt new file mode 100644 index 000000000..7de5f3b25 --- /dev/null +++ b/source/other-document-dbs.txt @@ -0,0 +1,10 @@ +===================================== +Other Document Database Compatibility +===================================== + +.. toctree:: + :titlesonly: + :maxdepth: 1 + + /documentdb-support + /cosmosdb-support From dbff23718310f17e76a55a80cf6f9e1fa53b6b38 Mon Sep 17 00:00:00 2001 From: Mike Woofter Date: Tue, 12 Dec 2023 12:16:39 -0600 Subject: [PATCH 3/8] fix links --- source/cosmosdb-support.txt | 5 ++--- source/index.txt | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/cosmosdb-support.txt b/source/cosmosdb-support.txt index 8d7e70f7c..38cbe1959 100644 --- a/source/cosmosdb-support.txt +++ b/source/cosmosdb-support.txt @@ -60,9 +60,8 @@ available in a limited capacity or are not supported at all: ``$indexStats``, ``$listLocalSessions``, ``$listSessions``, ``$lookup`` To learn more about Azure Cosmos DB's compatibility with MongoDB v4.2, -see the following Microsoft documentation: - -- `Azure Cosmos DB for MongoDB (4.2 server version): Supported features and syntax `__ +see Microsoft's `Azure Cosmos DB for MongoDB (4.2 server version): Supported features and syntax `__ +documentation. For the most current compatibility status between Azure Cosmos DB and MongoDB, see `Is Cosmos DB Compatible with MongoDB Atlas? `__ diff --git a/source/index.txt b/source/index.txt index b79b50301..8b8b13822 100644 --- a/source/index.txt +++ b/source/index.txt @@ -169,3 +169,4 @@ with MongoDB: Swift Driver TypeScript About Compatibility Tables + Other Document Database Compatibility From a2b44ddbfe07f4fd4a2e1c360715e072bf6c4830 Mon Sep 17 00:00:00 2001 From: Mike Woofter Date: Tue, 12 Dec 2023 12:22:47 -0600 Subject: [PATCH 4/8] fixes --- source/cosmosdb-support.txt | 2 ++ source/documentdb-support.txt | 2 ++ source/other-document-dbs.txt | 7 +++++++ 3 files changed, 11 insertions(+) diff --git a/source/cosmosdb-support.txt b/source/cosmosdb-support.txt index 38cbe1959..2d7933865 100644 --- a/source/cosmosdb-support.txt +++ b/source/cosmosdb-support.txt @@ -1,5 +1,7 @@ .. _cosmosdb-compat: +:noprevnext: + ============================= Azure Cosmos DB Compatibility ============================= diff --git a/source/documentdb-support.txt b/source/documentdb-support.txt index aa60aa4e3..01f41948f 100644 --- a/source/documentdb-support.txt +++ b/source/documentdb-support.txt @@ -1,5 +1,7 @@ .. _documentdb-compat: +:noprevnext: + =============================== Amazon DocumentDB Compatibility =============================== diff --git a/source/other-document-dbs.txt b/source/other-document-dbs.txt index 7de5f3b25..356b3c8a7 100644 --- a/source/other-document-dbs.txt +++ b/source/other-document-dbs.txt @@ -8,3 +8,10 @@ Other Document Database Compatibility /documentdb-support /cosmosdb-support + +See the following pages for information about other document databases' compatibility +with MongoDB: + +- :ref:`documentdb-compat` +- :ref:`cosmosdb-compat` + From 7c3f0fe191a29abda11d86e33b668c5b8c6e31ca Mon Sep 17 00:00:00 2001 From: Mike Woofter Date: Tue, 12 Dec 2023 13:30:43 -0600 Subject: [PATCH 5/8] remove period --- source/cosmosdb-support.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/cosmosdb-support.txt b/source/cosmosdb-support.txt index 2d7933865..9471233d6 100644 --- a/source/cosmosdb-support.txt +++ b/source/cosmosdb-support.txt @@ -37,7 +37,7 @@ Version Information Azure Cosmos DB supports MongoDB v4.2, or MongoDB v5.0 for vCore clusters. These versions don't support all the newer features and functionality in the versions of -MongoDB available on `MongoDB Atlas. `__. +MongoDB available on `MongoDB Atlas. `__ .. tip:: MongoDB Version History From 11eaee2fcf1dd2213628fa94e1d8b8df43432473 Mon Sep 17 00:00:00 2001 From: Mike Woofter Date: Fri, 15 Dec 2023 12:49:32 -0600 Subject: [PATCH 6/8] nr feedback --- snooty.toml | 1 + source/cosmosdb-support.txt | 10 ++++++---- source/documentdb-support.txt | 3 ++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/snooty.toml b/snooty.toml index ec6861676..72b459fbc 100644 --- a/snooty.toml +++ b/snooty.toml @@ -9,6 +9,7 @@ toc_landing_pages = [ "/use-cases", "/ruby-drivers", "/csharp-drivers", + "/other-document-dbs", ] intersphinx = ["https://www.mongodb.com/docs/manual/objects.inv"] diff --git a/source/cosmosdb-support.txt b/source/cosmosdb-support.txt index 9471233d6..c43c5f856 100644 --- a/source/cosmosdb-support.txt +++ b/source/cosmosdb-support.txt @@ -26,11 +26,12 @@ makes it easy to use Azure Cosmos DB as if it were a MongoDB database. With Azure Cosmos DB, you can run the same application code and use the same drivers and tools that you use with MongoDB. -Though Azure Cosmos DB for MongoDB implements MongoDB's +Azure Cosmos DB for MongoDB implements MongoDB's `Wire Protocol `__ to allow MongoDB's `drivers `__ to connect and -interact with Cosmos DB as though it were a MongoDB host, this -implementation has limitations. +interact with Cosmos DB as though it were a MongoDB host. However, this +implementation has limitations, as outlined in the Compatibility section of this page. +. Version Information ------------------- @@ -65,8 +66,9 @@ To learn more about Azure Cosmos DB's compatibility with MongoDB v4.2, see Microsoft's `Azure Cosmos DB for MongoDB (4.2 server version): Supported features and syntax `__ documentation. -For the most current compatibility status between Azure Cosmos DB and MongoDB, see +For the most current compatibility status between Azure Cosmos DB and MongoDB, see the `Is Cosmos DB Compatible with MongoDB Atlas? `__ +website. Support ------- diff --git a/source/documentdb-support.txt b/source/documentdb-support.txt index 01f41948f..5295603aa 100644 --- a/source/documentdb-support.txt +++ b/source/documentdb-support.txt @@ -77,8 +77,9 @@ see the following AWS documentation: - `Functional Differences: Amazon DocumentDB and MongoDB `__ - `Supported MongoDB APIs, Operations, and Data Types `__ -For the most current compatibility status between Amazon DocumentDB and MongoDB, see +For the most current compatibility status between Amazon DocumentDB and MongoDB, see the `Is Amazon DocumentDB Compatible with MongoDB Atlas? `__ +website. Support ------- From 4610a579458dd78121b5f69f293bc1bacacb2ee1 Mon Sep 17 00:00:00 2001 From: Mike Woofter Date: Fri, 15 Dec 2023 13:57:41 -0600 Subject: [PATCH 7/8] nr suggestions --- source/cosmosdb-support.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/cosmosdb-support.txt b/source/cosmosdb-support.txt index c43c5f856..eb3e55946 100644 --- a/source/cosmosdb-support.txt +++ b/source/cosmosdb-support.txt @@ -30,8 +30,8 @@ Azure Cosmos DB for MongoDB implements MongoDB's `Wire Protocol `__ to allow MongoDB's `drivers `__ to connect and interact with Cosmos DB as though it were a MongoDB host. However, this -implementation has limitations, as outlined in the Compatibility section of this page. -. +implementation has limitations, as outlined in the :ref:`cosmosdb-compat-section` section +of this page. Version Information ------------------- @@ -45,6 +45,8 @@ MongoDB available on `MongoDB Atlas. `__ To learn more about the features available in each version of MongoDB, see `MongoDB Evolved - Version History. `__ +.. _cosmosdb-compat-section: + Compatibility ------------- From dc30a1b370458a2320b3ae888f2ee617aff285cd Mon Sep 17 00:00:00 2001 From: Mike Woofter Date: Fri, 15 Dec 2023 14:00:26 -0600 Subject: [PATCH 8/8] fix --- source/cosmosdb-support.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/cosmosdb-support.txt b/source/cosmosdb-support.txt index eb3e55946..111d9466a 100644 --- a/source/cosmosdb-support.txt +++ b/source/cosmosdb-support.txt @@ -28,7 +28,7 @@ and tools that you use with MongoDB. Azure Cosmos DB for MongoDB implements MongoDB's `Wire Protocol `__ -to allow MongoDB's `drivers `__ to connect and +to allow MongoDB `drivers `__ to connect and interact with Cosmos DB as though it were a MongoDB host. However, this implementation has limitations, as outlined in the :ref:`cosmosdb-compat-section` section of this page.