From cbe1396115ca04dc8e906a2be3954acc14c5f341 Mon Sep 17 00:00:00 2001 From: Jeff Allen Date: Wed, 11 Nov 2020 10:46:51 -0500 Subject: [PATCH 01/97] Revert 5.0-specific updates This reverts commit 0f5e652c225d4bb612141cbafd02b08e0dc83595. --- conf.py | 2 +- config/build_conf.yaml | 4 +- config/redirects | 3 +- config/sphinx_local.yaml | 1 - snooty.toml | 6 +- source/core/aggregation-pipeline.txt | 2 - ...xtracts-server-status-projection-base.yaml | 14 -- source/includes/fact-getSecondaryOk.rst | 2 - source/includes/fact-secondaryOk.rst | 7 - source/includes/fact-setSecondaryOk.rst | 2 - source/includes/let-constants-example.rst | 17 -- source/includes/let-constants.rst | 20 -- ...backup-sharded-cluster-with-snapshots.yaml | 5 +- .../steps-backup-sharded-clusters-dumps.yaml | 2 +- source/reference/command/aggregate.txt | 49 +---- source/reference/command/dbStats.txt | 100 +++------- source/reference/command/serverStatus.txt | 80 +------- source/reference/method.txt | 13 +- .../reference/method/Mongo.getSecondaryOk.txt | 37 ---- .../reference/method/Mongo.setSecondaryOk.txt | 33 ---- .../method/db.collection.aggregate.txt | 42 +---- source/reference/method/db.serverStatus.txt | 48 ----- source/reference/method/js-connection.txt | 11 -- source/reference/method/js-replication.txt | 5 - source/reference/method/rs.secondaryOk.txt | 35 ---- source/reference/operator/update.txt | 2 - source/reference/replica-configuration.txt | 16 +- source/reference/replication.txt | 4 - source/release-notes.txt | 13 +- .../3.4-downgrade-replica-set.txt | 3 +- .../3.4-downgrade-sharded-cluster.txt | 4 +- source/release-notes/5.0-changelog.txt | 11 -- source/release-notes/5.0-compatibility.txt | 39 ---- source/release-notes/5.0.txt | 176 ------------------ 34 files changed, 62 insertions(+), 746 deletions(-) delete mode 100644 source/includes/fact-getSecondaryOk.rst delete mode 100644 source/includes/fact-secondaryOk.rst delete mode 100644 source/includes/fact-setSecondaryOk.rst delete mode 100644 source/includes/let-constants-example.rst delete mode 100644 source/includes/let-constants.rst delete mode 100644 source/reference/method/Mongo.getSecondaryOk.txt delete mode 100644 source/reference/method/Mongo.setSecondaryOk.txt delete mode 100644 source/reference/method/rs.secondaryOk.txt delete mode 100644 source/release-notes/5.0-changelog.txt delete mode 100644 source/release-notes/5.0-compatibility.txt delete mode 100644 source/release-notes/5.0.txt diff --git a/conf.py b/conf.py index 15066b3dcd5..f51fb5060a1 100644 --- a/conf.py +++ b/conf.py @@ -76,7 +76,7 @@ def has(self, *args): ]) source_constants = { - 'version-dev': '4.9', # Current development branch + 'version-dev': '4.3', # Current development branch 'package-name-org': 'mongodb-org', 'package-name-enterprise': 'mongodb-enterprise', 'version': version, diff --git a/config/build_conf.yaml b/config/build_conf.yaml index 9dfed986ce2..df62547b664 100644 --- a/config/build_conf.yaml +++ b/config/build_conf.yaml @@ -10,8 +10,8 @@ project: branched: true siteroot: true version: - release: '5.0.0' - branch: '5.0' + release: '4.4.1' + branch: '4.4' system: files: - 'pdfs.yaml' diff --git a/config/redirects b/config/redirects index 61785fd581e..8f21e6412ed 100644 --- a/config/redirects +++ b/config/redirects @@ -1,8 +1,7 @@ define: base https://docs.mongodb.com define: versions v2.2 v2.4 v2.6 v3.0 v3.2 v3.4 v3.6 v4.0 v4.2 v4.4 master symlink: manual -> v4.4 -symlink: upcoming -> v4.4 -symlink: master -> v4.4 +symlink: v4.4 -> master [v2.2]: /${version}/core/read-operations-introduction -> ${base}/${version}/core/read-operations [v2.2]: /${version}/core/write-operations-introduction -> ${base}/${version}/core/write-operations diff --git a/config/sphinx_local.yaml b/config/sphinx_local.yaml index f1615d22210..bce2d7f9f51 100644 --- a/config/sphinx_local.yaml +++ b/config/sphinx_local.yaml @@ -89,7 +89,6 @@ theme: - /release-notes/4.0 - /release-notes/4.2 - /release-notes/4.4 - - /release-notes/5.0 - /security - /sharding - /changeStreams diff --git a/snooty.toml b/snooty.toml index 4534449d385..688f0466043 100644 --- a/snooty.toml +++ b/snooty.toml @@ -1,11 +1,11 @@ name = "manual" [constants] -package-branch = "5.0" # For rc = testing. For GA, will be 4.2. -windows-dir-version = "5.0" # The wizard installs in 4.2 branch +package-branch = "4.2" # For rc = testing. For GA, will be 4.2. +windows-dir-version = "4.2" # The wizard installs in 4.2 branch package-name-org = "mongodb-org" package-name-enterprise = "mongodb-enterprise" -version = "5.0" +version = "4.2" release = "{+release+}" pgp-version = "{+version+}" pgp-fingerprint = "E162F504A20CDF15827F718D4B7C549A058F8B6B" diff --git a/source/core/aggregation-pipeline.txt b/source/core/aggregation-pipeline.txt index e01c41fc7ac..469b6042f01 100644 --- a/source/core/aggregation-pipeline.txt +++ b/source/core/aggregation-pipeline.txt @@ -1,5 +1,3 @@ -.. _aggregation-top-level-server: - ==================== Aggregation Pipeline ==================== diff --git a/source/includes/extracts-server-status-projection-base.yaml b/source/includes/extracts-server-status-projection-base.yaml index aae7dc11d22..9a971b75731 100644 --- a/source/includes/extracts-server-status-projection-base.yaml +++ b/source/includes/extracts-server-status-projection-base.yaml @@ -15,20 +15,6 @@ content: | ref: _serverStatus-output-changes content: | - - Starting in MongoDB 5.0, {{operationName}}: - - - Added new metrics to track use of Aggregation Pipeline methods: - - - :serverstatus:`metrics.commands.update.pipeline` - - - :serverstatus:`metrics.commands.findAndModify.pipeline` - - - Added new metrics to track use of arrayFilter methods: - - - :serverstatus:`metrics.commands.update.arrayFilters` - - - :serverstatus:`metrics.commands.findAndModify.arrayFilters` - - Starting in MongoDB 4.4, {{operationName}}: - Added new metrics to track write concern failures caused diff --git a/source/includes/fact-getSecondaryOk.rst b/source/includes/fact-getSecondaryOk.rst deleted file mode 100644 index 7cefac5d15c..00000000000 --- a/source/includes/fact-getSecondaryOk.rst +++ /dev/null @@ -1,2 +0,0 @@ -Indicates whether the MongoDB connection allows read operations on -:term:`secondary` members. \ No newline at end of file diff --git a/source/includes/fact-secondaryOk.rst b/source/includes/fact-secondaryOk.rst deleted file mode 100644 index 3a86e1cdea9..00000000000 --- a/source/includes/fact-secondaryOk.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. include:: /includes/fact-setSecondaryOk.rst - -Also means that :term:`eventually consistent ` -read operations are acceptable for the current application. See -:method:`readPref() ` for additional -fine-grained settings for the :doc:`read preference -`. \ No newline at end of file diff --git a/source/includes/fact-setSecondaryOk.rst b/source/includes/fact-setSecondaryOk.rst deleted file mode 100644 index 5e3cebb8f40..00000000000 --- a/source/includes/fact-setSecondaryOk.rst +++ /dev/null @@ -1,2 +0,0 @@ -Allows read operations on :term:`secondary` members for the MongoDB -connection. \ No newline at end of file diff --git a/source/includes/let-constants-example.rst b/source/includes/let-constants-example.rst deleted file mode 100644 index 31cae65d395..00000000000 --- a/source/includes/let-constants-example.rst +++ /dev/null @@ -1,17 +0,0 @@ -Create a collection ``cakeSales`` containing sales for cake flavors: - -.. code-block:: javascript - - db.cakeSales.insert( [ - { _id: 1, flavor: "chocolate", salesTotal: 1580 }, - { _id: 2, flavor: "strawberry", salesTotal: 4350 }, - { _id: 3, flavor: "cherry", salesTotal: 2150 } - ] ) - -The following example: - -- retrieves the cake that has a ``salesTotal`` greater than 3000, which - is the cake with an ``_id`` of 2 - -- defines a ``targetTotal`` constant in ``let``, which is referenced in - ``$gt`` as ``$$targetTotal`` \ No newline at end of file diff --git a/source/includes/let-constants.rst b/source/includes/let-constants.rst deleted file mode 100644 index af5e5eae944..00000000000 --- a/source/includes/let-constants.rst +++ /dev/null @@ -1,20 +0,0 @@ -Specifies a document with a list of constants that can be used elsewhere -in the command. This supports tasks that could otherwise only be -performed using the :dbcommand:`mapReduce` command, and reduces the risk -of MQL injection attacks. The document syntax is: - -.. code-block:: javascript - :copyable: false - - { : , - ..., - : } - -For example: ``{ targetTotal: 3000 }`` - -Constants must be named according to the :ref:`user variable naming -conventions`. - -To access a constant elsewhere in the command, use the double dollar -sign prefix (``$$``) together with your constant name in the form -``$$``. For example: ``$$targetTotal`` \ No newline at end of file diff --git a/source/includes/steps-backup-sharded-cluster-with-snapshots.yaml b/source/includes/steps-backup-sharded-cluster-with-snapshots.yaml index 7026a94b9ec..6722616f529 100644 --- a/source/includes/steps-backup-sharded-cluster-with-snapshots.yaml +++ b/source/includes/steps-backup-sharded-cluster-with-snapshots.yaml @@ -76,7 +76,7 @@ action: for the control document: language: javascript code: | - rs.secondaryOk(); + db.getMongo().setReadPref('secondary'); use config; @@ -127,8 +127,7 @@ action: control document: language: javascript code: | - rs.secondaryOk(); - + db.getMongo().setReadPref('secondary'); use config; db.BackupControl.find( diff --git a/source/includes/steps-backup-sharded-clusters-dumps.yaml b/source/includes/steps-backup-sharded-clusters-dumps.yaml index e3704deb409..670a8975479 100644 --- a/source/includes/steps-backup-sharded-clusters-dumps.yaml +++ b/source/includes/steps-backup-sharded-clusters-dumps.yaml @@ -72,7 +72,7 @@ action: control document: language: javascript code: | - rs.secondaryOk(); + db.getMongo().setReadPref('secondary'); use config; diff --git a/source/reference/command/aggregate.txt b/source/reference/command/aggregate.txt index 7280361eff2..a531846fc91 100644 --- a/source/reference/command/aggregate.txt +++ b/source/reference/command/aggregate.txt @@ -23,10 +23,10 @@ Definition Syntax ------ -.. versionchanged:: 5.0 - The command has following syntax: +.. versionchanged:: 3.6 + .. code-block:: javascript { @@ -41,8 +41,7 @@ The command has following syntax: collation: , hint: , comment: , - writeConcern: , - let: // Added in MongoDB 5.0 + writeConcern: } .. tip:: @@ -226,24 +225,11 @@ arguments: Omit to use the default write concern with the :pipeline:`$out` or :pipeline:`$merge` stage. + + - * - ``let`` - - - document - - - .. _aggregate-let-option: - - Optional. - - .. include:: /includes/let-constants.rst - - For an example, see :ref:`aggregate-let`. - - .. versionadded:: 5.0 - - .. include:: /includes/deprecation-aggregate-wo-cursor.rst For more information about the aggregation pipeline @@ -549,30 +535,5 @@ majority of the nodes. .. include:: /includes/usage-read-concern-majority.rst -.. _aggregate-let: - -Use Constants in ``let`` -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. versionadded:: 5.0 - -To specify constants that can be accessed elsewhere in the command, use -the :ref:`let ` option. - -.. include:: /includes/let-constants-example.rst - -.. code-block:: javascript - - db.runCommand( { - aggregate: db.cakeSales.getName(), - pipeline: [ - { $match: { - $expr: { $gt: [ "$salesTotal", "$$targetTotal" ] } - } }, - ], - cursor: {}, - let: { targetTotal: 3000 } - } ) - .. seealso:: :method:`db.collection.aggregate()` diff --git a/source/reference/command/dbStats.txt b/source/reference/command/dbStats.txt index 3a1af9133fc..871c34873a2 100644 --- a/source/reference/command/dbStats.txt +++ b/source/reference/command/dbStats.txt @@ -24,7 +24,7 @@ Definition db.runCommand( { dbStats: 1, - scale: // Optional + scale: //Optional } ) The :dbcommand:`dbStats` command takes the following fields: @@ -90,111 +90,73 @@ Output .. data:: dbStats.db - Name of the database. + Contains the name of the database. .. data:: dbStats.collections - Number of collections in the database. + Contains a count of the number of collections in that database. .. data:: dbStats.views - Number of :doc:`views ` in the database. + Contains a count of the number of :doc:`views ` in that database. .. data:: dbStats.objects - Number of objects (specifically, :term:`documents `) in the - database across all collections. + Contains a count of the number of objects (i.e. :term:`documents `) in + the database across all collections. .. data:: dbStats.avgObjSize - Average size of each document in bytes. This is the + The average size of each document in bytes. This is the :data:`~dbStats.dataSize` divided by the number of documents. The :ref:`scale argument ` does not affect the ``avgObjSize`` value. .. data:: dbStats.dataSize - Total size of the uncompressed data held in the database. The - :data:`~dbStats.dataSize` decreases when you remove :term:`documents - `. + The total size of the uncompressed data held in this database. + The :data:`~dbStats.dataSize` decreases + when you remove :term:`documents `. - For databases using the :ref:`WiredTiger - ` storage engine, ``dataSize`` may be - larger than ``storageSize`` if compression is enabled. The - ``dataSize`` decreases when documents shrink. + For databases using the :ref:`WiredTiger ` storage engine, + ``dataSize`` may be larger than ``storageSize`` if compression is enabled. The ``dataSize`` + decreases when documents shrink. .. sum of all records not counting deleted records .. data:: dbStats.storageSize - Sum of the space allocated to all collections in the database for - :term:`document` storage, including free space. + The total amount of space allocated to collections in this database + for :term:`document` storage. The :data:`~dbStats.storageSize` does + not decrease as you remove or shrink documents. This value may be + smaller than ``dataSize`` for databases using the WiredTiger storage + engine with + :ref:`compression ` enabled. - The :data:`~dbStats.storageSize` does not decrease as you remove or - shrink documents. This value may be smaller than - :data:`~dbStats.dataSize` for databases using the WiredTiger storage - engine with :ref:`compression ` - enabled. - - :data:`~dbStats.storageSize` does not include space allocated to - indexes. See :data:`~dbStats.indexSize` for the total index size. + :data:`~dbStats.storageSize` does not include the index size. See + :data:`~dbStats.indexSize` for index sizing. + .. sum of all extents (no indexes or the $freelist) .. include links to eventual documentation of storage management -.. data:: dbStats.freeStorageSize - - Sum of the free space allocated to all collections in the database - for :term:`document` storage. Free database storage space is - allocated to the collection but does not contain data. - - :data:`~dbStats.freeStorageSize` does not include free space - allocated to indexes. See :data:`~dbStats.indexFreeStorageSize` for - the total free index size. - - .. versionadded:: 5.0 - .. data:: dbStats.indexes - Total number of indexes across all collections in the database. + Contains a count of the total number of indexes across all + collections in the database. .. data:: dbStats.indexSize - Sum of the space allocated to all indexes in the database, including - free index space. - -.. data:: dbStats.indexFreeStorageSize - - Sum of the free space allocated to all indexes in the database. Free - database storage space is allocated to the index but does not contain - data. - - :data:`~dbStats.indexFreeStorageSize` does not include free space - allocated to document storage. See :data:`~dbStats.freeStorageSize` - for the total free document storage size. - - .. versionadded:: 5.0 + The total size of all indexes created on this database. .. data:: dbStats.totalSize - Sum of the space allocated for both documents and indexes in all - collections in the database. Includes used and free storage space. - This is the sum of :data:`~dbStats.storageSize` and - :data:`~dbStats.indexSize`. + The sum of the :data:`~dbStats.storageSize` and :data:`~dbStats.indexSize`. .. versionadded:: 4.4 -.. data:: dbStats.totalFreeStorageSize - - Sum of the free storage space allocated for both documents and - indexes in all collections in the database. This is the sum of - :data:`~dbStats.freeStorageSize` and - :data:`~dbStats.indexFreeStorageSize`. - - .. versionadded:: 5.0 - .. data:: dbStats.scaleFactor - ``scale`` value used by the command. + The ``scale`` value used by the command. If you specified a non-integer scale factor, MongoDB uses the integer part of the specified factor. For example, if you specify a @@ -205,18 +167,18 @@ Output .. data:: dbStats.fsUsedSize + .. versionadded:: 3.6 + Total size of all disk space in use on the filesystem where MongoDB stores data. - .. versionadded:: 3.6 - .. seealso:: :option:`--dbpath ` .. data:: dbStats.fsTotalSize + .. versionadded:: 3.6 + Total size of all disk capacity on the filesystem where MongoDB stores data. - - .. versionadded:: 3.6 diff --git a/source/reference/command/serverStatus.txt b/source/reference/command/serverStatus.txt index 5dc40b71af3..debcb5c9ac9 100644 --- a/source/reference/command/serverStatus.txt +++ b/source/reference/command/serverStatus.txt @@ -35,20 +35,8 @@ The command has the following syntax: db.runCommand( { serverStatus: 1 } ) The value (i.e. ``1`` above) does not affect the operation of the -command. The ``db.serverStatus()`` command returns a large amount of -data. To return a specific object or field from the output append the -object or field name to the command. - -For example: - -.. code-block:: javascript - - db.runCommand({ serverStatus: 1}).metrics - db.runCommand({ serverStatus: 1}).metrics.commands - db.runCommand({ serverStatus: 1}).metrics.commands.update - -The :binary:`~bin.mongo` shell provides the :method:`db.serverStatus()` -wrapper for the :dbcommand:`serverStatus` command. +command. The :binary:`~bin.mongo` shell provides the +:method:`db.serverStatus()` wrapper for the command. .. seealso:: @@ -75,30 +63,6 @@ all :ref:`server-status-repl` information in the output: db.runCommand( { serverStatus: 1, repl: 1 } ) -Initialization -~~~~~~~~~~~~~~ - -The statistics reported by :dbcommand:`serverStatus` are reset when the -:binary:`~bin.mongod` server is restarted. - -This command will always return a value, even on a fresh database. The -related command :method:`db.serverStatus()` does not always return a -value unless a counter has started to increment for a particular -metric. - -After you run an update query, ``db.serverStatus()`` and -``db.runCommand({ serverStatus: 1})`` both return the same values. - -.. code-block:: javascript - :copyable: false - - { - "arrayFilters" : NumberLong(0), - "failed" : NumberLong(0), - "pipeline" : NumberLong(0), - "total" : NumberLong(1) - } - Include ``mirroredReads`` ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -4071,6 +4035,7 @@ metrics ``replSetStepDown``. In earlier versions, the command reported only overall ``replSetStepDown`` metrics. + .. serverstatus:: metrics.commands..failed The number of times ```` failed on this @@ -4081,45 +4046,6 @@ metrics The number of times ```` executed on this :binary:`~bin.mongod`. -.. serverstatus:: metrics.commands.update.pipeline - - The number of times an - :ref:`aggregation pipeline ` - was used to update documents on this :binary:`~bin.mongod`. Subtract - this value from the total number of updates to get the number of - updates made with :ref:`document ` - syntax. - - The ``pipeline`` counter is only available for ``update`` and - ``findAndModify`` operations. - -.. serverstatus:: metrics.commands.findAndModify.pipeline - - The number of times :method:`~db.collection.findAndModify()` was - used in an - :ref:`aggregation pipeline ` - to update documents on this :binary:`~bin.mongod`. - - The ``pipeline`` counter is only available for ``update`` and - ``findAndModify`` operations. - -.. serverstatus:: metrics.commands.update.arrayFilters - - The number of times an :ref:`arrayFilter ` - was used to update documents on this :binary:`~bin.mongod`. - - The ``arrayFilters`` counter is only available for ``update`` and - ``findAndModify`` operations. - -.. serverstatus:: metrics.commands.findAndModify.arrayFilters - - The number of times an :ref:`arrayFilter ` - was used with :method:`~db.collection.findAndModify()` to update - documents on this :binary:`~bin.mongod`. - - The ``arrayFilters`` counter is only available for ``update`` and - ``findAndModify`` operations. - .. serverstatus:: metrics.document A document that reflects document access and modification patterns. diff --git a/source/reference/method.txt b/source/reference/method.txt index 1f96b447b14..919e67d6718 100644 --- a/source/reference/method.txt +++ b/source/reference/method.txt @@ -946,10 +946,6 @@ Replication - Remove a member from a replica set. - * - :method:`rs.secondaryOk()` - - - Allows read operations on a secondary member. - * - :method:`rs.status()` - Returns a document with information about the state of the replica set. @@ -1239,10 +1235,6 @@ Connection - Returns the read preference tag set for the MongoDB connection. - * - :method:`Mongo.getSecondaryOk()` - - - .. include:: /includes/fact-getSecondaryOk.rst - * - :method:`Mongo.isCausalConsistency()` - Indicates whether causal consistency is enabled on the connection object. @@ -1255,10 +1247,6 @@ Connection - Sets the :term:`read preference` for the MongoDB connection. - * - :method:`Mongo.setSecondaryOk()` - - - .. include:: /includes/fact-setSecondaryOk.rst - * - :method:`Mongo.startSession()` - Starts a session on the connection object. @@ -1270,6 +1258,7 @@ Connection databases, excluding the internal ``admin``, ``local``, and ``config`` databases. + * - :method:`Session` - The session object. diff --git a/source/reference/method/Mongo.getSecondaryOk.txt b/source/reference/method/Mongo.getSecondaryOk.txt deleted file mode 100644 index 3551680a3cd..00000000000 --- a/source/reference/method/Mongo.getSecondaryOk.txt +++ /dev/null @@ -1,37 +0,0 @@ -====================== -Mongo.getSecondaryOk() -====================== - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -Definition ----------- - -.. method:: Mongo.getSecondaryOk() - - .. include:: /includes/fact-getSecondaryOk.rst - - :returns: ``True`` if the MongoDB connection allows read - operations on :term:`secondary` members. Otherwise, returns - ``false``. - -Example -------- - -This example calls :method:`~Mongo.getSecondaryOk()`: - -.. code-block:: javascript - - db.getMongo().getSecondaryOk() - -.. seealso:: - - - :method:`Mongo.setSecondaryOk()` - - - :method:`rs.secondaryOk()` \ No newline at end of file diff --git a/source/reference/method/Mongo.setSecondaryOk.txt b/source/reference/method/Mongo.setSecondaryOk.txt deleted file mode 100644 index b8237bee94b..00000000000 --- a/source/reference/method/Mongo.setSecondaryOk.txt +++ /dev/null @@ -1,33 +0,0 @@ -====================== -Mongo.setSecondaryOk() -====================== - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -Definition ----------- - -.. method:: Mongo.setSecondaryOk() - - .. include:: /includes/fact-secondaryOk.rst - -Example -------- - -This example calls :method:`~Mongo.setSecondaryOk()`: - -.. code-block:: javascript - - db.getMongo().setSecondaryOk() - -.. seealso:: - - - :method:`Mongo.getSecondaryOk()` - - - :method:`rs.secondaryOk()` \ No newline at end of file diff --git a/source/reference/method/db.collection.aggregate.txt b/source/reference/method/db.collection.aggregate.txt index b7a67ef92fa..b113395dc3e 100644 --- a/source/reference/method/db.collection.aggregate.txt +++ b/source/reference/method/db.collection.aggregate.txt @@ -61,7 +61,6 @@ Definition The ``options`` document can contain the following fields and values: - .. versionchanged:: 5.0 .. list-table:: :header-rows: 1 @@ -206,22 +205,8 @@ Definition Omit to use the default write concern with the :pipeline:`$out` or :pipeline:`$merge` stage. - - - - * - ``let`` - - - document - - - .. _db.collection.aggregate-let-option: - - Optional. - - .. include:: /includes/let-constants.rst - - For an example, see :ref:`db.collection.aggregate-let`. - - .. versionadded:: 5.0 + + @@ -616,26 +601,3 @@ An application can encode any arbitrary information in the comment in order to more easily trace or identify specific operations through the system. For instance, an application might attach a string comment incorporating its process ID, thread ID, client hostname, and the user who issued the command. - -.. _db.collection.aggregate-let: - -Use Constants in ``let`` -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. versionadded:: 5.0 - -To specify variables that can be accessed elsewhere in the command, use -the :ref:`let ` option. - -.. include:: /includes/let-constants-example.rst - -.. code-block:: javascript - - db.cakeSales.aggregate( - [ - { $match: { - $expr: { $gt: [ "$salesTotal", "$$targetTotal" ] } - } } - ], - { let: { targetTotal: 3000 } } - ) diff --git a/source/reference/method/db.serverStatus.txt b/source/reference/method/db.serverStatus.txt index b54057130d5..a0b41033f5d 100644 --- a/source/reference/method/db.serverStatus.txt +++ b/source/reference/method/db.serverStatus.txt @@ -37,54 +37,6 @@ information in the output: db.serverStatus( { repl: 1 } ) -Initialization -~~~~~~~~~~~~~~ - -The statistics reported by :method:`db.serverStatus()` are reset when -the :binary:`~bin.mongod` server is restarted. The :method:`db.serverStatus()` -command does not report some statistics until they have been -initialized by server events. - -For example, after restarting the :binary:`~bin.mongod` server, -:method:`db.serverStatus()` won't return any values for ``findAndModify``. - -.. code-block:: javascript - - db.serverStatus().metrics.commands.findAndModify - // No results returned - -After you run an update query, subsequent calls to -:method:`db.serverStatus()` display the expected metrics. - -.. code-block:: javascript - :copyable: false - - { - "arrayFilters" : NumberLong(0), - "failed" : NumberLong(0), - "pipeline" : NumberLong(0), - "total" : NumberLong(1) - } - -.. note:: - - The ``db.serverStatus()`` method returns an error if a specific - object is queried before the counters have begun to increment. - - If there haven't been any document updates yet: - - .. code-block:: javascript - - db.serverStatus().metrics.commands.update.pipeline - - Returns: - - .. code-block:: javascript - :copyable: false - - TypeError: db.serverStatus(...).metrics.commands.update is undefined : - @(shell):1:1 - Include ``mirroredReads`` ~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/reference/method/js-connection.txt b/source/reference/method/js-connection.txt index c0be32fd91c..559cf7a6e82 100644 --- a/source/reference/method/js-connection.txt +++ b/source/reference/method/js-connection.txt @@ -40,10 +40,6 @@ Connection Methods - Returns the read preference tag set for the MongoDB connection. - * - :method:`Mongo.getSecondaryOk()` - - - .. include:: /includes/fact-getSecondaryOk.rst - * - :method:`Mongo.isCausalConsistency()` - Indicates whether causal consistency is enabled on the connection object. @@ -56,10 +52,6 @@ Connection Methods - Sets the :term:`read preference` for the MongoDB connection. - * - :method:`Mongo.setSecondaryOk()` - - - .. include:: /includes/fact-setSecondaryOk.rst - * - :method:`Mongo.startSession()` - Starts a session on the connection object. @@ -90,13 +82,10 @@ Connection Methods /reference/method/Mongo.getDB /reference/method/Mongo.getReadPrefMode /reference/method/Mongo.getReadPrefTagSet - /reference/method/Mongo.getSecondaryOk /reference/method/Mongo.isCausalConsistency /reference/method/Mongo.setCausalConsistency /reference/method/Mongo.setReadPref - /reference/method/Mongo.setSecondaryOk /reference/method/Mongo.startSession /reference/method/Mongo.watch /reference/method/Session /reference/method/SessionOptions - \ No newline at end of file diff --git a/source/reference/method/js-replication.txt b/source/reference/method/js-replication.txt index 14fcb213e9c..bf7917935e0 100644 --- a/source/reference/method/js-replication.txt +++ b/source/reference/method/js-replication.txt @@ -60,10 +60,6 @@ Replication Methods - Remove a member from a replica set. - * - :method:`rs.secondaryOk()` - - - .. include:: /includes/fact-setSecondaryOk.rst - * - :method:`rs.status()` - Returns a document with information about the state of the replica set. @@ -91,7 +87,6 @@ Replication Methods /reference/method/rs.printSlaveReplicationInfo /reference/method/rs.reconfig /reference/method/rs.remove - /reference/method/rs.secondaryOk /reference/method/rs.status /reference/method/rs.stepDown /reference/method/rs.syncFrom diff --git a/source/reference/method/rs.secondaryOk.txt b/source/reference/method/rs.secondaryOk.txt deleted file mode 100644 index b9746c2590e..00000000000 --- a/source/reference/method/rs.secondaryOk.txt +++ /dev/null @@ -1,35 +0,0 @@ -================ -rs.secondaryOk() -================ - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -Definition ----------- - -.. method:: rs.secondaryOk() - - .. include:: /includes/fact-secondaryOk.rst - - :method:`rs.secondaryOk()` calls :method:`Mongo.setSecondaryOk()`. - -Example -------- - -This example calls :method:`rs.secondaryOk()`: - -.. code-block:: javascript - - rs.secondaryOk() - -.. seealso:: - - - :method:`Mongo.setSecondaryOk()` - - - :method:`Mongo.getSecondaryOk()` \ No newline at end of file diff --git a/source/reference/operator/update.txt b/source/reference/operator/update.txt index 171d7486ee0..dd18bb2a89e 100644 --- a/source/reference/operator/update.txt +++ b/source/reference/operator/update.txt @@ -10,8 +10,6 @@ Update Operators :depth: 1 :class: singlecol -.. _update-operators-top-level: - The following modifiers are available for use in update operations; e.g. in :method:`db.collection.update()` and :method:`db.collection.findAndModify()`. diff --git a/source/reference/replica-configuration.txt b/source/reference/replica-configuration.txt index b9277f71dcc..8f0bdb5b7c4 100644 --- a/source/reference/replica-configuration.txt +++ b/source/reference/replica-configuration.txt @@ -195,17 +195,11 @@ Replica Set Configuration Fields *Type*: integer - An integer identifier for the member in the replica set, unique - among all members. - - Starting in MongoDB 5.0, values may be any integer value greater - than or equal to ``0``. Previously, this value was limited to an - integer between ``0`` and ``255`` inclusive. - - Each replica set member must have a unique - :rsconf:`_id `. Avoid re-using ``_id`` values - *even if* no :rsconf:`members[n]` entry is using that ``_id`` in - the current configuration. + An integer identifier of every member in the replica set. Values + must be between 0 and 255 inclusive. Each replica set member must + have a unique :rsconf:`_id `. Avoid re-using + ``_id`` values *even if* no :rsconf:`members[n]` entry is using + that ``_id`` in the current configuration. Once set, you cannot change the :rsconf:`_id ` of a member. diff --git a/source/reference/replication.txt b/source/reference/replication.txt index 53fbff45ec0..1256af9cb29 100644 --- a/source/reference/replication.txt +++ b/source/reference/replication.txt @@ -61,10 +61,6 @@ Replication Methods in the ``mongo`` Shell - Remove a member from a replica set. - * - :method:`rs.secondaryOk()` - - - .. include:: /includes/fact-setSecondaryOk.rst - * - :method:`rs.status()` - Returns a document with information about the state of the replica set. diff --git a/source/release-notes.txt b/source/release-notes.txt index f998053e4da..5391d649b6c 100644 --- a/source/release-notes.txt +++ b/source/release-notes.txt @@ -9,18 +9,6 @@ Always install the latest, stable version of MongoDB. See See the following release notes for an account of the changes in major versions. Release notes also include instructions for upgrade. -Upcoming Release -~~~~~~~~~~~~~~~~ - -(*5.0-series*) - -:doc:`/release-notes/5.0` - -.. toctree:: - :maxdepth: 1 - :hidden: - - /release-notes/5.0 Current Stable Release ~~~~~~~~~~~~~~~~~~~~~~ @@ -95,3 +83,4 @@ See also: :doc:`/reference/versioning` :hidden: /reference/versioning + diff --git a/source/release-notes/3.4-downgrade-replica-set.txt b/source/release-notes/3.4-downgrade-replica-set.txt index f234a36c580..8b0c2bcb35c 100644 --- a/source/release-notes/3.4-downgrade-replica-set.txt +++ b/source/release-notes/3.4-downgrade-replica-set.txt @@ -94,7 +94,8 @@ reindex operation does not propagate to the secondaries. .. tip:: If connecting a :binary:`~bin.mongo` shell to a secondary member, - use :method:`rs.secondaryOk()` to allow reads from secondaries. + set use :method:`db.getMongo().setReadPref('secondary')` to allow reads + from secondaries. Procedure --------- diff --git a/source/release-notes/3.4-downgrade-sharded-cluster.txt b/source/release-notes/3.4-downgrade-sharded-cluster.txt index a97e4fb5664..b5e2d8538d2 100644 --- a/source/release-notes/3.4-downgrade-sharded-cluster.txt +++ b/source/release-notes/3.4-downgrade-sharded-cluster.txt @@ -97,8 +97,8 @@ servers: .. tip:: If connecting a :binary:`~bin.mongo` shell to a secondary member, - use :method:`rs.secondaryOk()` to allow reads from - secondaries. + set use :method:`db.getMongo().setReadPref('secondary')` to allow reads + from secondaries. #. Repeat the process on each member of the config server replica set. diff --git a/source/release-notes/5.0-changelog.txt b/source/release-notes/5.0-changelog.txt deleted file mode 100644 index 2ee5de1185c..00000000000 --- a/source/release-notes/5.0-changelog.txt +++ /dev/null @@ -1,11 +0,0 @@ -============= -5.0 Changelog -============= - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol diff --git a/source/release-notes/5.0-compatibility.txt b/source/release-notes/5.0-compatibility.txt deleted file mode 100644 index 8130ecf2447..00000000000 --- a/source/release-notes/5.0-compatibility.txt +++ /dev/null @@ -1,39 +0,0 @@ -==================================== -Compatibility Changes in MongoDB 5.0 -==================================== - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: singlecol - -The following 5.0 changes can affect compatibility with older -versions of MongoDB. - - -Removed Commands ----------------- - -Removed Parameters ------------------- - -Tools Changes -------------- - -Replica Sets ------------- - -Projection Compatibility Changes --------------------------------- - -Map Reduce Changes ------------------- - -General Changes ---------------- - -5.0 Feature Compatibility -------------------------- diff --git a/source/release-notes/5.0.txt b/source/release-notes/5.0.txt deleted file mode 100644 index 9d5dd8b9128..00000000000 --- a/source/release-notes/5.0.txt +++ /dev/null @@ -1,176 +0,0 @@ -============================= -Release Notes for MongoDB 5.0 -============================= - -.. default-domain:: mongodb - -.. contents:: On this page - :local: - :backlinks: none - :depth: 1 - :class: twocols - -.. _5.0-rel-notes-agg: - -Aggregation ------------ - -General Aggregation Improvements -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -``let`` -``````` - -Starting in MongoDB 5.0, the :dbcommand:`aggregate` command and -:method:`db.collection.aggregate()` helper method have a ``let`` option -to specify a list of constants that can be used elsewhere in the -aggregation pipeline. This supports tasks that could otherwise only be -performed using the :dbcommand:`mapReduce` command, and reduces the risk -of MQL injection attacks. - - -.. _5.0-rel-notes-repl-sets: - -Replica Sets ------------- - -Limit Removed for ``members[n]._id`` Values -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Starting in MongoDB 5.0, the :rsconf:`members[n]._id` field may be any -integer value greater than or equal to ``0``. Previously, this value was -limited to an integer between ``0`` and ``255`` inclusive. - -.. _5.0-rel-notes-sharded-clusters: - -Sharded Clusters ----------------- - -.. _5.0-rel-notes-projection: - -Projection ----------- - -.. _5.0-rel-notes-transactions: - -Transactions ------------- - -.. _5.0-rel-notes-security: - -Security Improvements ---------------------- - -.. _5.0-rel-notes-logging: - -Structured Logging ------------------- - -.. _5.0-rel-notes-platforms: - -Platform Support ----------------- - -.. _5.0-rel-notes-shell: - -Mongo Shell ------------ - -.. _5.0-rel-notes-drivers: - -Drivers -------- - -.. _5.0-rel-notes-indexes: - -Indexes -------- - -.. _5.0-rel-notes-removed-commands: - -Removed Commands ----------------- - -.. _5.0-rel-notes-networking: - -Networking ----------- - -.. _5.0-rel-notes-general: - -General Improvements --------------------- - -.. _5.0-upgrade: - -``serverStatus`` Output Change -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -New Fields -`````````` - -:dbcommand:`serverStatus` includes the following new fields in its -output: - -.. container:: - - Aggregation Metrics - .. list-table:: - - * - | :serverstatus:`metrics.commands.update.pipeline` *(Also available in 4.4.2+, 4.2.11+)* - | :serverstatus:`metrics.commands.update.arrayFilters` *(Also available in 4.4.2+, 4.2.11+)* - | :serverstatus:`metrics.commands.findAndModify.pipeline` *(Also available in 4.4.2+, 4.2.11+)* - | :serverstatus:`metrics.commands.findAndModify.arrayFilters` *(Also available in 4.4.2+, 4.2.11+)* - -Additional ``dbStats`` Free Space Statistics -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Starting in MongoDB 5.0, the :dbcommand:`dbStats` command outputs these -additional statistics: - -- Free space allocated to collections (:data:`~dbStats.freeStorageSize`) - -- Free space allocated to indexes - (:data:`~dbStats.indexFreeStorageSize`) - -- Total free space allocated to collections and indexes - (:data:`~dbStats.totalFreeStorageSize`) - -Upgrade Procedures ------------------- - -.. _5.0-download: - -Download --------- - -To download MongoDB 5.0, go to the `MongoDB Download Center -`_. - -.. seealso:: - - - `All Third Party License Notices `_. - -.. _5.0-known-issues: - -Known Issues ------------- - -Report an Issue ---------------- - -To report an issue, see -https://github.com/mongodb/mongo/wiki/Submit-Bug-Reports for -instructions on how to file a JIRA ticket for the MongoDB server or one -of the related projects. - -.. class:: hidden - - .. toctree:: - - /release-notes/5.0-compatibility - /release-notes/4.4-upgrade-standalone - /release-notes/4.4-upgrade-replica-set - /release-notes/4.4-upgrade-sharded-cluster - /release-notes/4.4-downgrade - /release-notes/5.0-changelog From 784e1dfaac15935acb531f5c56e3d8b92ad795b2 Mon Sep 17 00:00:00 2001 From: Jeff Allen Date: Wed, 11 Nov 2020 10:49:21 -0500 Subject: [PATCH 02/97] adjust redirects --- config/redirects | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/redirects b/config/redirects index 8f21e6412ed..bd5487216a6 100644 --- a/config/redirects +++ b/config/redirects @@ -1,7 +1,8 @@ define: base https://docs.mongodb.com define: versions v2.2 v2.4 v2.6 v3.0 v3.2 v3.4 v3.6 v4.0 v4.2 v4.4 master +symlink: upcoming -> v4.4 symlink: manual -> v4.4 -symlink: v4.4 -> master +symlink: master -> v4.4 [v2.2]: /${version}/core/read-operations-introduction -> ${base}/${version}/core/read-operations [v2.2]: /${version}/core/write-operations-introduction -> ${base}/${version}/core/write-operations From a07fb8c04aa2d7a7156e9b2ced78af0524edd6b4 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 11 Nov 2020 11:26:22 -0500 Subject: [PATCH 03/97] DOCSP-13127 correct version mismatches between branches --- snooty.toml | 6 +++--- source/installation.txt | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/snooty.toml b/snooty.toml index 688f0466043..533389b635a 100644 --- a/snooty.toml +++ b/snooty.toml @@ -1,11 +1,11 @@ name = "manual" [constants] -package-branch = "4.2" # For rc = testing. For GA, will be 4.2. -windows-dir-version = "4.2" # The wizard installs in 4.2 branch +package-branch = "4.4" # For rc = testing. For GA, will be 4.2. +windows-dir-version = "4.4" # The wizard installs in 4.2 branch package-name-org = "mongodb-org" package-name-enterprise = "mongodb-enterprise" -version = "4.2" +version = "4.4" release = "{+release+}" pgp-version = "{+version+}" pgp-fingerprint = "E162F504A20CDF15827F718D4B7C549A058F8B6B" diff --git a/source/installation.txt b/source/installation.txt index f2083584eaf..2fc72739b5d 100644 --- a/source/installation.txt +++ b/source/installation.txt @@ -29,7 +29,7 @@ This section of the manual contains information on installing MongoDB. - For instructions on upgrading your current deployment to MongoDB - 4.2, see :ref:`4.2-upgrade` instead. + {+version+}, see :ref:`{+version+}-upgrade` instead. - For instructions on upgrading to the latest patch release for your current version, see :doc:`/tutorial/upgrade-revision` instead. @@ -144,6 +144,10 @@ s390x (MongoDB Enterprise Edition) .. include:: /includes/fact-platform-s390x-enterprise.rst +Containers +~~~~~~~~~~ + +.. include:: /includes/fact-platform-containers.rst .. toctree:: :hidden: From c473c268a0617952ef4b639c9f81a08ed00158c0 Mon Sep 17 00:00:00 2001 From: andf-mongodb <55111344+andf-mongodb@users.noreply.github.com> Date: Wed, 11 Nov 2020 12:29:22 -0500 Subject: [PATCH 04/97] Update redirects --- config/redirects | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/redirects b/config/redirects index bd5487216a6..b8c7cd290cd 100644 --- a/config/redirects +++ b/config/redirects @@ -2,7 +2,7 @@ define: base https://docs.mongodb.com define: versions v2.2 v2.4 v2.6 v3.0 v3.2 v3.4 v3.6 v4.0 v4.2 v4.4 master symlink: upcoming -> v4.4 symlink: manual -> v4.4 -symlink: master -> v4.4 +symlink: v4.4 -> master [v2.2]: /${version}/core/read-operations-introduction -> ${base}/${version}/core/read-operations [v2.2]: /${version}/core/write-operations-introduction -> ${base}/${version}/core/write-operations From 1e52d3e93a37d22e1366adcce99506163a58d592 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 11 Nov 2020 13:58:46 -0500 Subject: [PATCH 05/97] DOCS-13914 update 4.0.21 changelog --- source/includes/changelogs/releases/4.0.21.rst | 5 ++++- source/release-notes/4.0.txt | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/source/includes/changelogs/releases/4.0.21.rst b/source/includes/changelogs/releases/4.0.21.rst index c2c598f2634..8ac89660c17 100644 --- a/source/includes/changelogs/releases/4.0.21.rst +++ b/source/includes/changelogs/releases/4.0.21.rst @@ -42,7 +42,8 @@ Query - :issue:`SERVER-39392` Invariant in PlanStage::dispose always evaluates as true - :issue:`SERVER-45233` Indexed inequalities to arrays return incorrect results - :issue:`SERVER-50291` Add query knob to enumerate $or children in a different order -- :issue:`SERVER-51120` Find queries with MERGE_SORT incorrectly sort the results when the collation is specified +- :issue:`SERVER-51083` Problem with regex index bounds +- :issue:`SERVER-51120` Find queries with SORT_MERGE incorrectly sort the results when the collation is specified Aggregation ~~~~~~~~~~~ @@ -86,6 +87,8 @@ Internals - :issue:`SERVER-50736` Make OpenSSL explicitly accept SNIs presented in ClientHello - :issue:`SERVER-50818` Coverity analysis defect 114987: Wrapper object use after free - :issue:`SERVER-51106` Make the isMaster command a derived class of hello +- :issue:`SERVER-51608` [4.0] backport implicitly_retry_on_background_op_in_progress.js +- :issue:`SERVER-51802` Add requires_majority_read_concern tag to decrypt_tool.js on v4.0 - :issue:`TOOLS-2589` [v4.0] sslAllowInvalidHostnames bypass ssl/tls server certification validation entirely - :issue:`WT-6421` Avoid parsing metadata checkpoint for clean files - :issue:`WT-6559` Use the session id from the new session to determine statistics bucket diff --git a/source/release-notes/4.0.txt b/source/release-notes/4.0.txt index 0e2ff2f5ef6..c74902dabfd 100644 --- a/source/release-notes/4.0.txt +++ b/source/release-notes/4.0.txt @@ -15,8 +15,8 @@ Minor Releases .. _4.0.21-release-notes: -4.0.21 - Upcoming -~~~~~~~~~~~~~~~~~ +4.0.21 - Nov 10, 2020 +~~~~~~~~~~~~~~~~~~~~~ Issues fixed: From 4ed0303efed0025522b23221bd16bdcec39598cb Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 11 Nov 2020 14:07:00 -0500 Subject: [PATCH 06/97] DOCS-13914 update 4.0.21 summary ticket description --- source/release-notes/4.0.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/release-notes/4.0.txt b/source/release-notes/4.0.txt index c74902dabfd..53c641fb53f 100644 --- a/source/release-notes/4.0.txt +++ b/source/release-notes/4.0.txt @@ -37,7 +37,7 @@ Issues fixed: self-ownership - :issue:`SERVER-50915` [v4.0] fsyncLock must not take a stable checkpoint when majority read concern is off -- :issue:`SERVER-51120` Find queries with MERGE_SORT incorrectly sort +- :issue:`SERVER-51120` Find queries with SORT_MERGE incorrectly sort the results when the collation is specified - `All JIRA issues closed in 4.0.21 From e794d61aa81e466547bcd1dc22107c8f6a2ab59c Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 11 Nov 2020 17:28:00 -0500 Subject: [PATCH 07/97] DOCSP-11589 update pre-3.6 reading own writes section --- source/includes/fact-read-own-writes.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/includes/fact-read-own-writes.rst b/source/includes/fact-read-own-writes.rst index 7da90fa74a6..400db1b2da2 100644 --- a/source/includes/fact-read-own-writes.rst +++ b/source/includes/fact-read-own-writes.rst @@ -2,9 +2,9 @@ Starting in MongoDB 3.6, you can use :ref:`causally consistent sessions ` to read your own writes, if the writes request acknowledgement. -Prior to MongoDB 3.6, you must have issued your write operation with -:writeconcern:`{ w: "majority" } <"majority">` write concern and then -use either :readconcern:`"majority"` or :readconcern:`"linearizable"` -read concern for the read operations to ensure that a single thread can -read its own writes. +Prior to MongoDB 3.6, in order to read your own writes you must issue +your write operation with :writeconcern:`{ w: "majority" } <"majority">` +write concern, and then issue your read operation with +:readmode:`primary` read preference, and either +:readconcern:`"majority"` or :readconcern:`"linearizable"` read concern. From 96576aa1836244805d84046ab9cfb42208d4516a Mon Sep 17 00:00:00 2001 From: andf-mongodb <55111344+andf-mongodb@users.noreply.github.com> Date: Thu, 12 Nov 2020 13:04:34 -0500 Subject: [PATCH 08/97] Trivial: correct capitalization of ID --- source/reference/command/createUser.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/reference/command/createUser.txt b/source/reference/command/createUser.txt index 0f5dcda6404..3db870a6d38 100644 --- a/source/reference/command/createUser.txt +++ b/source/reference/command/createUser.txt @@ -227,7 +227,7 @@ Authentication Restrictions Behavior -------- -User Id +User ID ~~~~~~~ Starting in version 4.0.9, MongoDB automatically assigns a unique From b7ec4929c160a67d0de8e5318d77752e8cb8078f Mon Sep 17 00:00:00 2001 From: andf-mongodb <55111344+andf-mongodb@users.noreply.github.com> Date: Thu, 12 Nov 2020 13:10:01 -0500 Subject: [PATCH 09/97] Trivial: correct capitalization of ID --- source/reference/method/db.createUser.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/reference/method/db.createUser.txt b/source/reference/method/db.createUser.txt index 6297a82821f..d9099eabaa8 100644 --- a/source/reference/method/db.createUser.txt +++ b/source/reference/method/db.createUser.txt @@ -234,7 +234,7 @@ command. Behavior -------- -User Id +User ID ~~~~~~~ Starting in version 4.0.9, MongoDB automatically assigns a unique From 04cdee0b0ef9df1931bbeea98b5c48af6906afa6 Mon Sep 17 00:00:00 2001 From: jeff-allen-mongo Date: Tue, 18 Aug 2020 16:18:19 -0400 Subject: [PATCH 10/97] (DOCSP-11857): SERVER-49694 fixed in 4.1.1 --- source/release-notes/4.4.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/release-notes/4.4.txt b/source/release-notes/4.4.txt index c752c39ed33..c0c07b22192 100644 --- a/source/release-notes/4.4.txt +++ b/source/release-notes/4.4.txt @@ -2186,7 +2186,7 @@ Known Issues reads or :ref:`hedged reads ` may not be routed to a near shard replica. - - Unresolved + - Fixed in 4.1.1 * - 4.4.0 From 0fe7c840060bcaf681c771393875e74d8f5a30f2 Mon Sep 17 00:00:00 2001 From: jeff-allen-mongo Date: Tue, 18 Aug 2020 13:11:44 -0400 Subject: [PATCH 11/97] (DOCS-13839): Rename ocspValidationRefreshPeriodSecs param --- .../includes/fact-4.4-stapling-refresh-rename.rst | 2 ++ source/includes/list-table-ocsp-parameters.rst | 6 +++++- source/reference/parameters.txt | 14 ++++++++------ 3 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 source/includes/fact-4.4-stapling-refresh-rename.rst diff --git a/source/includes/fact-4.4-stapling-refresh-rename.rst b/source/includes/fact-4.4-stapling-refresh-rename.rst new file mode 100644 index 00000000000..b487b8e23b1 --- /dev/null +++ b/source/includes/fact-4.4-stapling-refresh-rename.rst @@ -0,0 +1,2 @@ +Renamed from ``ocspValidationRefreshPeriodSecs`` to +``ocspStaplingRefreshPeriodSecs`` in MongoDB 4.4.1. diff --git a/source/includes/list-table-ocsp-parameters.rst b/source/includes/list-table-ocsp-parameters.rst index b2af4ec3cb1..3c4eacc428a 100644 --- a/source/includes/list-table-ocsp-parameters.rst +++ b/source/includes/list-table-ocsp-parameters.rst @@ -9,11 +9,15 @@ - Enables or disables the OCSP support. - * - :parameter:`ocspValidationRefreshPeriodSecs` + * - :parameter:`ocspStaplingRefreshPeriodSecs` - Specifies the number of seconds to wait before refreshing the stapled OCSP status response. + .. include:: /includes/fact-4.4-stapling-refresh-rename.rst + + .. versionchanged:: 4.4.1 + * - :parameter:`tlsOCSPStaplingTimeoutSecs` - Specifies the maximum number of seconds the diff --git a/source/reference/parameters.txt b/source/reference/parameters.txt index 43b6dde36b7..7a5351164dd 100644 --- a/source/reference/parameters.txt +++ b/source/reference/parameters.txt @@ -272,11 +272,11 @@ Authentication Parameters .. seealso:: - - :parameter:`ocspValidationRefreshPeriodSecs` + - :parameter:`ocspStaplingRefreshPeriodSecs` - :parameter:`tlsOCSPStaplingTimeoutSecs` - :parameter:`tlsOCSPVerifyTimeoutSecs` -.. parameter:: ocspValidationRefreshPeriodSecs +.. parameter:: ocspStaplingRefreshPeriodSecs .. versionadded:: 4.4 @@ -285,14 +285,16 @@ Authentication Parameters The number of seconds to wait before refreshing the stapled OCSP status response. Specify a number greater than or equal to 1. - You can only set :parameter:`ocspValidationRefreshPeriodSecs` during + You can only set :parameter:`ocspStaplingRefreshPeriodSecs` during startup in the :setting:`configuration file ` or with the ``--setParameter`` option on the command line. For example, the following sets the parameter to 3600 seconds: .. code-block:: sh - mongod --setParameter ocspValidationRefreshPeriodSecs=3600 ... + mongod --setParameter ocspStaplingRefreshPeriodSecs=3600 ... + + .. include:: /includes/fact-4.4-stapling-refresh-rename.rst .. seealso:: @@ -573,7 +575,7 @@ Authentication Parameters .. seealso:: - :parameter:`ocspEnabled` - - :parameter:`ocspValidationRefreshPeriodSecs` + - :parameter:`ocspStaplingRefreshPeriodSecs` - :parameter:`tlsOCSPVerifyTimeoutSecs` .. parameter:: tlsOCSPVerifyTimeoutSecs @@ -603,7 +605,7 @@ Authentication Parameters .. seealso:: - :parameter:`ocspEnabled` - - :parameter:`ocspValidationRefreshPeriodSecs` + - :parameter:`ocspStaplingRefreshPeriodSecs` - :parameter:`tlsOCSPStaplingTimeoutSecs` .. parameter:: tlsWithholdClientCertificate From 12799c8e5055f03473435d69b11bd31282da979f Mon Sep 17 00:00:00 2001 From: Jason Price Date: Thu, 12 Nov 2020 14:14:20 -0800 Subject: [PATCH 12/97] DOCSP-11989 Slave ok no longer documented DOCSP-11989 Slave ok no longer documented --- source/includes/fact-getSecondaryOk.rst | 2 + source/includes/fact-secondaryOk.rst | 7 ++++ source/includes/fact-setSecondaryOk.rst | 2 + ...backup-sharded-cluster-with-snapshots.yaml | 5 ++- .../steps-backup-sharded-clusters-dumps.yaml | 2 +- source/reference/method.txt | 13 ++++++- .../reference/method/Mongo.getSecondaryOk.txt | 37 +++++++++++++++++++ .../reference/method/Mongo.setSecondaryOk.txt | 33 +++++++++++++++++ source/reference/method/js-connection.txt | 11 ++++++ source/reference/method/js-replication.txt | 5 +++ source/reference/method/rs.secondaryOk.txt | 35 ++++++++++++++++++ source/reference/replication.txt | 4 ++ .../3.4-downgrade-replica-set.txt | 6 +-- .../3.4-downgrade-sharded-cluster.txt | 4 +- 14 files changed, 157 insertions(+), 9 deletions(-) create mode 100644 source/includes/fact-getSecondaryOk.rst create mode 100644 source/includes/fact-secondaryOk.rst create mode 100644 source/includes/fact-setSecondaryOk.rst create mode 100644 source/reference/method/Mongo.getSecondaryOk.txt create mode 100644 source/reference/method/Mongo.setSecondaryOk.txt create mode 100644 source/reference/method/rs.secondaryOk.txt diff --git a/source/includes/fact-getSecondaryOk.rst b/source/includes/fact-getSecondaryOk.rst new file mode 100644 index 00000000000..7cefac5d15c --- /dev/null +++ b/source/includes/fact-getSecondaryOk.rst @@ -0,0 +1,2 @@ +Indicates whether the MongoDB connection allows read operations on +:term:`secondary` members. \ No newline at end of file diff --git a/source/includes/fact-secondaryOk.rst b/source/includes/fact-secondaryOk.rst new file mode 100644 index 00000000000..3a86e1cdea9 --- /dev/null +++ b/source/includes/fact-secondaryOk.rst @@ -0,0 +1,7 @@ +.. include:: /includes/fact-setSecondaryOk.rst + +Also means that :term:`eventually consistent ` +read operations are acceptable for the current application. See +:method:`readPref() ` for additional +fine-grained settings for the :doc:`read preference +`. \ No newline at end of file diff --git a/source/includes/fact-setSecondaryOk.rst b/source/includes/fact-setSecondaryOk.rst new file mode 100644 index 00000000000..5e3cebb8f40 --- /dev/null +++ b/source/includes/fact-setSecondaryOk.rst @@ -0,0 +1,2 @@ +Allows read operations on :term:`secondary` members for the MongoDB +connection. \ No newline at end of file diff --git a/source/includes/steps-backup-sharded-cluster-with-snapshots.yaml b/source/includes/steps-backup-sharded-cluster-with-snapshots.yaml index 6722616f529..7026a94b9ec 100644 --- a/source/includes/steps-backup-sharded-cluster-with-snapshots.yaml +++ b/source/includes/steps-backup-sharded-cluster-with-snapshots.yaml @@ -76,7 +76,7 @@ action: for the control document: language: javascript code: | - db.getMongo().setReadPref('secondary'); + rs.secondaryOk(); use config; @@ -127,7 +127,8 @@ action: control document: language: javascript code: | - db.getMongo().setReadPref('secondary'); + rs.secondaryOk(); + use config; db.BackupControl.find( diff --git a/source/includes/steps-backup-sharded-clusters-dumps.yaml b/source/includes/steps-backup-sharded-clusters-dumps.yaml index 670a8975479..e3704deb409 100644 --- a/source/includes/steps-backup-sharded-clusters-dumps.yaml +++ b/source/includes/steps-backup-sharded-clusters-dumps.yaml @@ -72,7 +72,7 @@ action: control document: language: javascript code: | - db.getMongo().setReadPref('secondary'); + rs.secondaryOk(); use config; diff --git a/source/reference/method.txt b/source/reference/method.txt index 919e67d6718..1f96b447b14 100644 --- a/source/reference/method.txt +++ b/source/reference/method.txt @@ -946,6 +946,10 @@ Replication - Remove a member from a replica set. + * - :method:`rs.secondaryOk()` + + - Allows read operations on a secondary member. + * - :method:`rs.status()` - Returns a document with information about the state of the replica set. @@ -1235,6 +1239,10 @@ Connection - Returns the read preference tag set for the MongoDB connection. + * - :method:`Mongo.getSecondaryOk()` + + - .. include:: /includes/fact-getSecondaryOk.rst + * - :method:`Mongo.isCausalConsistency()` - Indicates whether causal consistency is enabled on the connection object. @@ -1247,6 +1255,10 @@ Connection - Sets the :term:`read preference` for the MongoDB connection. + * - :method:`Mongo.setSecondaryOk()` + + - .. include:: /includes/fact-setSecondaryOk.rst + * - :method:`Mongo.startSession()` - Starts a session on the connection object. @@ -1258,7 +1270,6 @@ Connection databases, excluding the internal ``admin``, ``local``, and ``config`` databases. - * - :method:`Session` - The session object. diff --git a/source/reference/method/Mongo.getSecondaryOk.txt b/source/reference/method/Mongo.getSecondaryOk.txt new file mode 100644 index 00000000000..3551680a3cd --- /dev/null +++ b/source/reference/method/Mongo.getSecondaryOk.txt @@ -0,0 +1,37 @@ +====================== +Mongo.getSecondaryOk() +====================== + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +Definition +---------- + +.. method:: Mongo.getSecondaryOk() + + .. include:: /includes/fact-getSecondaryOk.rst + + :returns: ``True`` if the MongoDB connection allows read + operations on :term:`secondary` members. Otherwise, returns + ``false``. + +Example +------- + +This example calls :method:`~Mongo.getSecondaryOk()`: + +.. code-block:: javascript + + db.getMongo().getSecondaryOk() + +.. seealso:: + + - :method:`Mongo.setSecondaryOk()` + + - :method:`rs.secondaryOk()` \ No newline at end of file diff --git a/source/reference/method/Mongo.setSecondaryOk.txt b/source/reference/method/Mongo.setSecondaryOk.txt new file mode 100644 index 00000000000..b8237bee94b --- /dev/null +++ b/source/reference/method/Mongo.setSecondaryOk.txt @@ -0,0 +1,33 @@ +====================== +Mongo.setSecondaryOk() +====================== + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +Definition +---------- + +.. method:: Mongo.setSecondaryOk() + + .. include:: /includes/fact-secondaryOk.rst + +Example +------- + +This example calls :method:`~Mongo.setSecondaryOk()`: + +.. code-block:: javascript + + db.getMongo().setSecondaryOk() + +.. seealso:: + + - :method:`Mongo.getSecondaryOk()` + + - :method:`rs.secondaryOk()` \ No newline at end of file diff --git a/source/reference/method/js-connection.txt b/source/reference/method/js-connection.txt index 559cf7a6e82..c0be32fd91c 100644 --- a/source/reference/method/js-connection.txt +++ b/source/reference/method/js-connection.txt @@ -40,6 +40,10 @@ Connection Methods - Returns the read preference tag set for the MongoDB connection. + * - :method:`Mongo.getSecondaryOk()` + + - .. include:: /includes/fact-getSecondaryOk.rst + * - :method:`Mongo.isCausalConsistency()` - Indicates whether causal consistency is enabled on the connection object. @@ -52,6 +56,10 @@ Connection Methods - Sets the :term:`read preference` for the MongoDB connection. + * - :method:`Mongo.setSecondaryOk()` + + - .. include:: /includes/fact-setSecondaryOk.rst + * - :method:`Mongo.startSession()` - Starts a session on the connection object. @@ -82,10 +90,13 @@ Connection Methods /reference/method/Mongo.getDB /reference/method/Mongo.getReadPrefMode /reference/method/Mongo.getReadPrefTagSet + /reference/method/Mongo.getSecondaryOk /reference/method/Mongo.isCausalConsistency /reference/method/Mongo.setCausalConsistency /reference/method/Mongo.setReadPref + /reference/method/Mongo.setSecondaryOk /reference/method/Mongo.startSession /reference/method/Mongo.watch /reference/method/Session /reference/method/SessionOptions + \ No newline at end of file diff --git a/source/reference/method/js-replication.txt b/source/reference/method/js-replication.txt index bf7917935e0..14fcb213e9c 100644 --- a/source/reference/method/js-replication.txt +++ b/source/reference/method/js-replication.txt @@ -60,6 +60,10 @@ Replication Methods - Remove a member from a replica set. + * - :method:`rs.secondaryOk()` + + - .. include:: /includes/fact-setSecondaryOk.rst + * - :method:`rs.status()` - Returns a document with information about the state of the replica set. @@ -87,6 +91,7 @@ Replication Methods /reference/method/rs.printSlaveReplicationInfo /reference/method/rs.reconfig /reference/method/rs.remove + /reference/method/rs.secondaryOk /reference/method/rs.status /reference/method/rs.stepDown /reference/method/rs.syncFrom diff --git a/source/reference/method/rs.secondaryOk.txt b/source/reference/method/rs.secondaryOk.txt new file mode 100644 index 00000000000..b9746c2590e --- /dev/null +++ b/source/reference/method/rs.secondaryOk.txt @@ -0,0 +1,35 @@ +================ +rs.secondaryOk() +================ + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +Definition +---------- + +.. method:: rs.secondaryOk() + + .. include:: /includes/fact-secondaryOk.rst + + :method:`rs.secondaryOk()` calls :method:`Mongo.setSecondaryOk()`. + +Example +------- + +This example calls :method:`rs.secondaryOk()`: + +.. code-block:: javascript + + rs.secondaryOk() + +.. seealso:: + + - :method:`Mongo.setSecondaryOk()` + + - :method:`Mongo.getSecondaryOk()` \ No newline at end of file diff --git a/source/reference/replication.txt b/source/reference/replication.txt index 1256af9cb29..53fbff45ec0 100644 --- a/source/reference/replication.txt +++ b/source/reference/replication.txt @@ -61,6 +61,10 @@ Replication Methods in the ``mongo`` Shell - Remove a member from a replica set. + * - :method:`rs.secondaryOk()` + + - .. include:: /includes/fact-setSecondaryOk.rst + * - :method:`rs.status()` - Returns a document with information about the state of the replica set. diff --git a/source/release-notes/3.4-downgrade-replica-set.txt b/source/release-notes/3.4-downgrade-replica-set.txt index 8b0c2bcb35c..505be55506b 100644 --- a/source/release-notes/3.4-downgrade-replica-set.txt +++ b/source/release-notes/3.4-downgrade-replica-set.txt @@ -93,9 +93,9 @@ reindex operation does not propagate to the secondaries. .. tip:: - If connecting a :binary:`~bin.mongo` shell to a secondary member, - set use :method:`db.getMongo().setReadPref('secondary')` to allow reads - from secondaries. + If connecting a :binary:`~bin.mongo` shell to a secondary member, use + :method:`db.getMongo().setReadPref('secondary')` to allow reads from + secondaries. Procedure --------- diff --git a/source/release-notes/3.4-downgrade-sharded-cluster.txt b/source/release-notes/3.4-downgrade-sharded-cluster.txt index b5e2d8538d2..1d2bcb1f179 100644 --- a/source/release-notes/3.4-downgrade-sharded-cluster.txt +++ b/source/release-notes/3.4-downgrade-sharded-cluster.txt @@ -97,8 +97,8 @@ servers: .. tip:: If connecting a :binary:`~bin.mongo` shell to a secondary member, - set use :method:`db.getMongo().setReadPref('secondary')` to allow reads - from secondaries. + use :method:`db.getMongo().setReadPref('secondary')` to allow + reads from secondaries. #. Repeat the process on each member of the config server replica set. From c444c3c483ebf9efd6cec39f22868faee8a579e1 Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Wed, 11 Nov 2020 16:33:06 -0800 Subject: [PATCH 13/97] DOCSP-13033 properly pluralizes "tutorials" --- source/tutorial.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/tutorial.txt b/source/tutorial.txt index 2a66a3414be..228e8603257 100644 --- a/source/tutorial.txt +++ b/source/tutorial.txt @@ -9,7 +9,7 @@ MongoDB Tutorials ================= This page lists the tutorials available as part of the :doc:`MongoDB -Manual `. In addition to these tutorial in the manual, +Manual `. In addition to these tutorials in the manual, MongoDB provides :ref:`Getting Started Guides ` in various driver editions. If there is a process or pattern that you would like to see included here, please open a :issue:`Jira Case From cbce7e9d6e62767f034c124cfa2bf67177157b07 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 16 Nov 2020 10:24:51 -0500 Subject: [PATCH 14/97] DOCS-13955 release 3.6.21 --- source/includes/changelogs/releases/3.6.21.rst | 10 ++++++---- source/release-notes/3.6.txt | 6 ++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/source/includes/changelogs/releases/3.6.21.rst b/source/includes/changelogs/releases/3.6.21.rst index 48bcff8e4c0..bcac9190ca3 100644 --- a/source/includes/changelogs/releases/3.6.21.rst +++ b/source/includes/changelogs/releases/3.6.21.rst @@ -6,7 +6,8 @@ Sharding ~~~~~~~~ -:issue:`SERVER-51808` invariant failure: readConcern level != Available +- :issue:`SERVER-51808` invariant failure: readConcern level != Available +- :issue:`SERVER-51885` Blacklist balancing_sessions_collection.js from sharding_csrs_continuous_config_stepdown Replication ~~~~~~~~~~~ @@ -21,9 +22,8 @@ Replication Query ~~~~~ -- :issue:`SERVER-50291` Add query knob to enumerate $or children in a different order - :issue:`SERVER-51083` Problem with regex index bounds -- :issue:`SERVER-51120` Find queries with MERGE_SORT incorrectly sort the results when the collation is specified +- :issue:`SERVER-51120` Find queries with SORT_MERGE incorrectly sort the results when the collation is specified Storage ~~~~~~~ @@ -43,11 +43,13 @@ Build and Packaging Internals ~~~~~~~~~ -- :issue:`SERVER-41872` PlanEnumerator AndAssignment::choices ordering not stable and is relevant to set of plans generated +- :issue:`SERVER-45624` Pre-split and distribute chunks of sessions collection +- :issue:`SERVER-50123` Record number of physical cores on all platforms - :issue:`SERVER-50216` Adjust sys-perf frequencies - :issue:`SERVER-50605` Add {logMessage: "msg"} test-only command - :issue:`SERVER-50736` Make OpenSSL explicitly accept SNIs presented in ClientHello - :issue:`SERVER-50818` Coverity analysis defect 114987: Wrapper object use after free - :issue:`SERVER-51106` Make the isMaster command a derived class of hello +- :issue:`SERVER-51303` Lookup stage followed by $match on type uses wrong field in matching condition - :issue:`TOOLS-2590` [v3.6] sslAllowInvalidHostnames bypass ssl/tls server certification validation entirely diff --git a/source/release-notes/3.6.txt b/source/release-notes/3.6.txt index af45ce2500d..054d7561898 100644 --- a/source/release-notes/3.6.txt +++ b/source/release-notes/3.6.txt @@ -13,8 +13,8 @@ Release Notes for MongoDB 3.6 Minor Releases -------------- -3.6.21 - Upcoming -~~~~~~~~~~~~~~~~~ +3.6.21 - Nov 16, 2020 +~~~~~~~~~~~~~~~~~~~~~ Issues Fixed: @@ -24,8 +24,6 @@ Issues Fixed: database lock - :issue:`SERVER-49986`: Convert isMaster command to hello and add aliases -- :issue:`SERVER-50291`: Add query knob to enumerate $or children in a - different order - :issue:`SERVER-50736`: Make OpenSSL explicitly accept SNIs presented in ClientHello - :issue:`SERVER-51120`: Find queries with MERGE_SORT incorrectly sort From 51e3e38550beb1b21f164b5d4e06fcb234272952 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 16 Nov 2020 11:37:18 -0500 Subject: [PATCH 15/97] DOCS-13970 generate initial changelog 4.2.11 --- .../includes/changelogs/releases/4.2.11.rst | 91 +++++++++++++++++++ source/release-notes/4.2-changelog.txt | 2 + source/release-notes/4.2.txt | 23 +++++ 3 files changed, 116 insertions(+) create mode 100644 source/includes/changelogs/releases/4.2.11.rst diff --git a/source/includes/changelogs/releases/4.2.11.rst b/source/includes/changelogs/releases/4.2.11.rst new file mode 100644 index 00000000000..846c82d4cec --- /dev/null +++ b/source/includes/changelogs/releases/4.2.11.rst @@ -0,0 +1,91 @@ +.. _4.2.11-changelog: + +4.2.11 Changelog +---------------- + +Security +~~~~~~~~ + +:issue:`SERVER-45938` Allow matching O/OU/DC in client x509 cert if clusterMode:keyFile + +Sharding +~~~~~~~~ + +- :issue:`SERVER-36739` Use the mongos_manual_intervention_action hook in concurrency stepdown suites +- :issue:`SERVER-46393` Always check client last operation time when computing operationTime to append to the response +- :issue:`SERVER-47616` Improve error when logical sessions cannot have more than one user authenticated on a single connection +- :issue:`SERVER-51808` invariant failure: readConcern level != Available + +Replication +~~~~~~~~~~~ + +- :issue:`SERVER-33747` Arbiter tries to start data replication if cannot find itself in config after restart +- :issue:`SERVER-50116` Forbid oplog writes when replication is enabled +- :issue:`SERVER-50415` Rename waitInIsMaster failpoint to waitInHello +- :issue:`SERVER-50527` Change NotMasterError category to NotPrimaryError +- :issue:`SERVER-52560` oplog_writes_only_permitted_on_standalone.js must wait for insert to be in stable checkpoint + +Query +~~~~~ + +- :issue:`SERVER-51120` Find queries with SORT_MERGE incorrectly sort the results when the collation is specified +- :issue:`SERVER-51853` Always initialize the numInserted out-parameter in AbstractIndexAccessMethod::insertKeys + +Write Operations +~~~~~~~~~~~~~~~~ + +:issue:`SERVER-44586` add metrics to serverStatus to track type of update command + +Aggregation +~~~~~~~~~~~ + +:issue:`SERVER-48523` Unconditionally check the first entry in the oplog when attempting to resume a change stream + +Storage +~~~~~~~ + +:issue:`SERVER-43664` Speedup WiredTiger storage engine startup for many tables by optimizing WiredTigerUtil::setTableLogging() + +Operations +~~~~~~~~~~ + +- :issue:`SERVER-46729` Make Windows shell soft-fail for unavailable OCSP responder +- :issue:`SERVER-51757` Collect /proc/vmstat numa_pages_migrated statistics in FTDC + +Build and Packaging +~~~~~~~~~~~~~~~~~~~ + +- :issue:`SERVER-46342` DEB installs of MDB do not issue systemctl daemon-reload on install +- :issue:`SERVER-50016` Fail on missing variable customization files + +Internals +~~~~~~~~~ + +- :issue:`SERVER-43973` jsTestName() should return a unique name for each thread in the parallel suite +- :issue:`SERVER-45992` InMemory engine startupwarnings confusing +- :issue:`SERVER-46625` Improve diagnostics when mongocryptd requests are sent to non-mongocryptd daemon +- :issue:`SERVER-48078` Remove OpDebug invariant that relies on monotonic clock source +- :issue:`SERVER-48502` Tighten $currentOp and pinned cursor checks in kill_pinned_cursor.js +- :issue:`SERVER-49165` endSessions command in Client.Disconnect causes an authorization failure for an unauthed connection on a host that requires authentication +- :issue:`SERVER-49957` Read out of bounds in getPrevAndNextUUIDs +- :issue:`SERVER-50072` Check _isWindows() when initializing MongoRunner.EXIT_ABORT +- :issue:`SERVER-50123` Record number of physical cores on all platforms +- :issue:`SERVER-50216` Adjust sys-perf frequencies +- :issue:`SERVER-50365` Stuck with long-running transactions that can't be timed out +- :issue:`SERVER-50605` Add {logMessage: "msg"} test-only command +- :issue:`SERVER-50647` Fix OCSP HTTP Client timeout for Windows +- :issue:`SERVER-50736` Make OpenSSL explicitly accept SNIs presented in ClientHello +- :issue:`SERVER-50818` Coverity analysis defect 114987: Wrapper object use after free +- :issue:`SERVER-51004` Disable WT-Develop sys-perf build variants on sys-perf-4.2 +- :issue:`SERVER-51058` log_remote_op_wait.js misuses rawMongoProgramOutput +- :issue:`SERVER-51106` Make the isMaster command a derived class of hello +- :issue:`SERVER-51220` Handle auditing attribution in indirect drops +- :issue:`SERVER-51303` Lookup stage followed by $match on type uses wrong field in matching condition +- :issue:`SERVER-51607` Upgrade Twisted dependency to at least twisted-19.7.0 +- :issue:`SERVER-51840` Reduce dbtest jobs on 4.2 on Windows debug +- :issue:`TOOLS-2588` [v4.2] sslAllowInvalidHostnames bypass ssl/tls server certification validation entirely +- :issue:`WT-6160` Fix format failure caused by stack overwrite +- :issue:`WT-6507` Exit cache eviction worker after our operation has timed out +- :issue:`WT-6602` Allow operation timeout ms to be passed to commit and rollback +- :issue:`WT-6666` Start op timer when we configure it in rollback and commit + diff --git a/source/release-notes/4.2-changelog.txt b/source/release-notes/4.2-changelog.txt index 91a8e423151..f8b0038e3d6 100644 --- a/source/release-notes/4.2-changelog.txt +++ b/source/release-notes/4.2-changelog.txt @@ -10,6 +10,8 @@ :depth: 1 :class: singlecol +.. include:: /includes/changelogs/releases/4.2.11.rst + .. include:: /includes/changelogs/releases/4.2.10.rst .. include:: /includes/changelogs/releases/4.2.9.rst diff --git a/source/release-notes/4.2.txt b/source/release-notes/4.2.txt index 8e0b763c75f..25f44ee3756 100644 --- a/source/release-notes/4.2.txt +++ b/source/release-notes/4.2.txt @@ -17,6 +17,29 @@ Release Notes for MongoDB 4.2 Minor Releases -------------- +.. _4.2.11-release-notes: + +4.2.11 - Upcoming +~~~~~~~~~~~~~~~~~ + +Issues fixed in 4.2.11: + + +- :issue:`SERVER-43664`: Speedup WiredTiger storage engine startup for many tables by optimizing WiredTigerUtil::setTableLogging() + +- :issue:`SERVER-45938`: Allow matching O/OU/DC in client x509 cert if clusterMode:keyFile + +- :issue:`SERVER-48523`: Unconditionally check the first entry in the oplog when attempting to resume a change stream + +- :issue:`SERVER-51120`: Find queries with SORT_MERGE incorrectly sort the results when the collation is specified + +- :issue:`WT-6507`: Exit cache eviction worker after our operation has timed out + +- `All JIRA issues closed in 4.2.11 + `__ + +- :ref:`4.2.11-changelog` + .. _4.2.10-release-notes: 4.2.10 - Oct 2, 2020 From cca0d0a71317611cedb6a7b238fe34c1604c9ab3 Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Mon, 16 Nov 2020 13:11:01 -0500 Subject: [PATCH 16/97] DOCSP-10628 substrCP example correction --- source/reference/operator/aggregation/substrCP.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/reference/operator/aggregation/substrCP.txt b/source/reference/operator/aggregation/substrCP.txt index 5cc29e33564..3d1b5bc88d5 100644 --- a/source/reference/operator/aggregation/substrCP.txt +++ b/source/reference/operator/aggregation/substrCP.txt @@ -90,7 +90,7 @@ Definition - ``"cafét"`` * - ``{ $substrCP: [ "cafétéria", 5, 4 ] }`` - - ``"tér"`` + - ``"éria"`` * - ``{ $substrCP: [ "cafétéria", 7, 3 ] }`` - ``"ia"`` @@ -199,4 +199,4 @@ The operation returns the following results: { "_id" : 7, "name" : "tacos", "menuCode" : "tac" } { "_id" : 8, "name" : "寿司sushi", "menuCode" : "寿司s" } -.. seealso:: :expression:`$substrBytes` \ No newline at end of file +.. seealso:: :expression:`$substrBytes` From 0c882bc324d43b82715d64546660f17ae6dd09c7 Mon Sep 17 00:00:00 2001 From: Jeff Allen Date: Mon, 16 Nov 2020 10:49:59 -0500 Subject: [PATCH 17/97] (DOCS-13945): Read/Write concern not honored on local db --- source/reference/read-concern.txt | 7 +++++++ source/reference/write-concern.txt | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/source/reference/read-concern.txt b/source/reference/read-concern.txt index 531df5d601c..0a484b6c79f 100644 --- a/source/reference/read-concern.txt +++ b/source/reference/read-concern.txt @@ -500,6 +500,13 @@ of a multi-document transaction: available in transactions. For more information, see :ref:`transactions-read-concern`. +Read Concern not Supported on ``local`` Database +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The :ref:`local database ` does not support +read concerns. MongoDB silently ignores any configured read +concern for an operation on a collection in the local database. + Considerations -------------- diff --git a/source/reference/write-concern.txt b/source/reference/write-concern.txt index 2a0828e1d00..9c448d2afc4 100644 --- a/source/reference/write-concern.txt +++ b/source/reference/write-concern.txt @@ -390,6 +390,13 @@ For details, see :ref:`causal-consistency`. - Starting in MongoDB 4.4, replica set members in the :replstate:`STARTUP2` state do not participate in write majorities. +Write Concern not Supported on ``local`` Database +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The :ref:`local database ` does not support +write concerns. MongoDB silently ignores any configured write +concern for an operation on a collection in the local database. + .. _calculating-majority-count: Calculating Majority for Write Concern From 9846acbb55ea491a0b304bb55260dfa13306ad13 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Tue, 4 Aug 2020 15:14:00 -0400 Subject: [PATCH 18/97] DOCS-13806, DOCS-13241, DOCSP-12341 update macOS brew install doc --- source/tutorial/install-mongodb-on-os-x.txt | 281 +++++++++++++------- 1 file changed, 179 insertions(+), 102 deletions(-) diff --git a/source/tutorial/install-mongodb-on-os-x.txt b/source/tutorial/install-mongodb-on-os-x.txt index 10827d57043..4e6a9510d8c 100644 --- a/source/tutorial/install-mongodb-on-os-x.txt +++ b/source/tutorial/install-mongodb-on-os-x.txt @@ -24,7 +24,13 @@ Overview .. _`MongoDB Download Center`: https://www.mongodb.com/try/download/community?tck=docs_server Use this tutorial to install MongoDB {+version+} |edition| Edition on -macOS using the third-party |package-manager| package manager. +macOS using the third-party `Homebrew `__ +package manager. + +Starting with MongoDB 4.4.1, installing MongoDB via Homebrew also +installs the `MongoDB Database Tools +`__. See +:ref:`brew-installs-dbtools` for more information. MongoDB Version ~~~~~~~~~~~~~~~ @@ -54,72 +60,102 @@ Install MongoDB Community Edition Prerequisites ~~~~~~~~~~~~~ -If you have the Homebrew ``brew`` package installed on your OSX host -*and* you have previously tapped the official -`MongoDB Homebrew Tap `_, -skip the prerequisites and go to the :ref:`install` step. +Ensure your system meets each of the following prerequisites. You only +need to perform each prerequisite step once on your system. If you +have already performed the prerequisite steps as part of an earlier +MongoDB installation using Homebrew, you can skip to the +:ref:`installation procedure `. + +Install Xcode Command-Line Tools +```````````````````````````````` + +Homebrew requires the Xcode command-line tools from Apple's Xcode. + +- Install the Xcode command-line tools by running the following + command in your macOS Terminal: -Install XCode -````````````` -.. container:: + .. code-block:: sh - Apple's XCode includes command-line tools that are required - by ``brew``, and is available for free on the App Store. Make sure - you are running the latest version. + xcode-select --install Install Homebrew ```````````````` -.. container:: +macOS does not include the Homebrew ``brew`` package by default. - OSX does not include the Homebrew ``brew`` package by default. - Install ``brew`` using the - `official instructions `_. +- Install ``brew`` using the official + `Homebrew installation instructions `_. Tap the MongoDB Homebrew Tap ```````````````````````````` -.. container:: +Tap the +`MongoDB Homebrew Tap `_ to +download the official Homebrew formulae for MongoDB and the Database +Tools. - Issue the following from the terminal to - tap the official - `MongoDB Homebrew Tap `_: +- Run the following command in your macOS Terminal: - .. code-block:: sh + .. code-block:: sh - brew tap mongodb/brew + brew tap mongodb/brew .. _install: -Procedure -~~~~~~~~~ +Installing MongoDB {+version+} |edition| Edition +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Follow these steps to install MongoDB |edition| Edition using Homebrew's +``brew`` package manager. + +#. Verify that your system meets all the + :ref:`installation prerequisites ` by running the + following command in your macOS Terminal: + + .. code-block:: sh -Follow these steps to install MongoDB |edition| Edition using the -third-party ``brew`` package manager. + brew tap | grep mongodb -.. container:: + You should see the MongoDB brew tap listed. If you do not, or you + receive an error, return to the :ref:`osx-prereq` section. - From a terminal, issue the following: +#. To install MongoDB, run the following command in your macOS Terminal + application: .. code-block:: sh brew install mongodb-community@{+version+} - .. tip:: - - If you have previously installed an older version of the formula, - you may encounter a ChecksumMismatchError. To resolve, see - :ref:`troubleshooting-checksumerror`. + Alternatively, you can specify a previous version of MongoDB if + desired. You can also maintain multiple versions of MongoDB side by + side in this manner. + +.. tip:: + + If you have previously installed an older version of the formula, + you may encounter a ChecksumMismatchError. To resolve, see + :ref:`troubleshooting-checksumerror`. + +The installation includes the following binaries: - In addition to the :doc:`binaries `, the install - creates: +- The :binary:`~bin.mongod` server +- The :binary:`~bin.mongos` sharded cluster query router +- The :binary:`~bin.mongo` shell - - the :doc:`configuration file ` - (:file:`/usr/local/etc/mongod.conf`) +In addition, the installation creates: - - the :setting:`log directory path ` (``/usr/local/var/log/mongodb``) +- the :doc:`configuration file ` + (``/usr/local/etc/mongod.conf``) - - the :setting:`data directory path ` (``/usr/local/var/mongodb``) +- the :setting:`log directory path ` + (``/usr/local/var/log/mongodb``) + +- the :setting:`data directory path ` + (``/usr/local/var/mongodb``) + +Starting with MongoDB 4.4.1, the installation also includes the +`MongoDB Database Tools `__. +See :ref:`brew-installs-dbtools` for more information. .. _run-with-homebrew: @@ -129,100 +165,140 @@ Run MongoDB Community Edition Follow these steps to run MongoDB |edition| Edition. These instructions assume that you are using the default settings. -.. container:: +You can run MongoDB as a macOS service using ``brew``, or you can run +MongoDB manually as a background process. It is recommended to run +MongoDB as a macOS service, as doing so sets the correct system +``ulimit`` values automatically (see +:ref:`ulimit settings ` for more information). - You can run MongoDB as a macOS service using ``brew``, or you can run - MongoDB manually as a background process. It is recommended to run - MongoDB as a macOS service, as doing so sets the correct system - ``ulimit`` values automatically (see - :ref:`ulimit settings ` for more information). +- To run MongoDB (i.e. the :binary:`~bin.mongod` process) **as a + macOS service**, issue the following: - - To run MongoDB (i.e. the :binary:`~bin.mongod` process) **as a - macOS service**, issue the following: + .. code-block:: sh - .. code-block:: sh + brew services start mongodb-community@{+version+} - brew services start mongodb-community@{+version+} + To stop a :binary:`~bin.mongod` running as a macOS service, use the + following command as needed: - To stop a :binary:`~bin.mongod` running as a macOS service, use the - following command as needed: + .. code-block:: sh - .. code-block:: sh + brew services stop mongodb-community@{+version+} - brew services stop mongodb-community@{+version+} +- To run MongoDB (i.e. the :binary:`~bin.mongod` process) **manually + as a background process**, issue the following: - - To run MongoDB (i.e. the :binary:`~bin.mongod` process) **manually - as a background process**, issue the following: + .. code-block:: sh - .. code-block:: sh + mongod --config /usr/local/etc/mongod.conf --fork - mongod --config /usr/local/etc/mongod.conf --fork + To stop a :binary:`~bin.mongod` running as a background process, + connect to the :binary:`~bin.mongod` from the :program:`mongo` + shell, and issue the :dbcommand:`shutdown` command as needed. - To stop a :binary:`~bin.mongod` running as a background process, - connect to the :binary:`~bin.mongod` from the :program:`mongo` - shell, and issue the :dbcommand:`shutdown` command as needed. +Both methods use the :file:`/usr/local/etc/mongod.conf` file created +during the install. You can add your own MongoDB +:doc:`configuration options ` to +this file as well. - Both methods use the :file:`/usr/local/etc/mongod.conf` file created - during the install. You can add your own MongoDB - :doc:`configuration options ` to - this file as well. +.. admonition:: macOS Prevents ``mongod`` From Opening + :class: note - .. admonition:: macOS Prevents ``mongod`` From Opening - :class: note + macOS may prevent ``mongod`` from running after installation. If + you receive a security error when starting ``mongod`` + indicating that the developer could not be identified or verified, + do the following to grant ``mongod`` access to run: - macOS may prevent ``mongod`` from running after installation. If - you receive a security error when starting ``mongod`` - indicating that the developer could not be identified or verified, - do the following to grant ``mongod`` access to run: + - Open *System Preferences* + - Select the *Security and Privacy* pane. + - Under the *General* tab, click the button to the right of the + message about ``mongod``, labelled either :guilabel:`Open Anyway` + or :guilabel:`Allow Anyway` depending on your version of macOS. - - Open *System Preferences* - - Select the *Security and Privacy* pane. - - Under the *General* tab, click the button to the right of the - message about ``mongod``, labelled either :guilabel:`Open Anyway` - or :guilabel:`Allow Anyway` depending on your version of macOS. +To verify that MongoDB is running, perform one of the following: - To verify that MongoDB is running, search for ``mongod`` in your - running processes: +- If you started MongoDB **as a macOS service**: - .. code-block:: sh + .. code-block:: sh + + brew services list - ps aux | grep -v grep | grep mongod + You should see the service ``mongodb-community`` listed as + ``started``. - You can also view the log file to see the current status of your - ``mongod`` process: ``/usr/local/var/log/mongodb/mongo.log``. +- If you started MongoDB **manually as a background process**: + + .. code-block:: sh + + ps aux | grep -v grep | grep mongod + + You should see your ``mongod`` process in the output. + +You can also view the log file to see the current status of your +``mongod`` process: ``/usr/local/var/log/mongodb/mongo.log``. Connect and Use MongoDB ~~~~~~~~~~~~~~~~~~~~~~~ -.. container:: +To begin using MongoDB, connect a :binary:`~bin.mongo` shell to the +running instance. From a new terminal, issue the following: - To begin using MongoDB, connect a :binary:`~bin.mongo` shell to the - running instance. From a new terminal, issue the following: +.. code-block:: sh - .. code-block:: sh + mongo + +.. admonition:: macOS Prevents ``mongo`` From Opening + :class: note + + macOS may prevent ``mongo`` from running after installation. If + you receive a security error when starting ``mongo`` + indicating that the developer could not be identified or verified, + do the following to grant ``mongo`` access to run: - mongo + - Open *System Preferences* + - Select the *Security and Privacy* pane. + - Under the *General* tab, click the button to the right of the + message about ``mongo``, labelled either :guilabel:`Open Anyway` + or :guilabel:`Allow Anyway` depending on your version of macOS. - .. admonition:: macOS Prevents ``mongo`` From Opening - :class: note +For information on CRUD (Create,Read,Update,Delete) operations, see: - macOS may prevent ``mongo`` from running after installation. If - you receive a security error when starting ``mongo`` - indicating that the developer could not be identified or verified, - do the following to grant ``mongo`` access to run: +- :doc:`/tutorial/insert-documents` +- :doc:`/tutorial/query-documents` +- :doc:`/tutorial/update-documents` +- :doc:`/tutorial/remove-documents` + +.. _brew-installs-dbtools: + +Using the MongoDB Database Tools +-------------------------------- + +Starting in MongoDB 4.4.1, installing MongoDB via ``brew`` also installs +the MongoDB Database Tools. + +The `MongoDB Database Tools +`__ are a collection of +command-line utilities for working with a MongoDB deployment, +including data backup and import/export tools like +:binary:`mongoimport` and :binary:`mongodump` as well as monitoring +tools like :binary:`mongotop`. + +Once you have installed the MongoDB Server in the steps above, the +Database Tools are available directly from the command line in your +macOS Terminal application. For example you could run :binary:`mongotop` +against your running MongoDB instance by invoking it in your +macOS Terminal like so: + +.. code-block:: sh - - Open *System Preferences* - - Select the *Security and Privacy* pane. - - Under the *General* tab, click the button to the right of the - message about ``mongo``, labelled either :guilabel:`Open Anyway` - or :guilabel:`Allow Anyway` depending on your version of macOS. + mongotop - For information on CRUD (Create,Read,Update,Delete) operations, see: +It should start up, connect to your running :binary:`mongod`, and start +reporting usage statistics. - - :doc:`/tutorial/insert-documents` - - :doc:`/tutorial/query-documents` - - :doc:`/tutorial/update-documents` - - :doc:`/tutorial/remove-documents` +See the `MongoDB Database Tools Documentation +`__ for usage information for +each of the Database Tools. Additional Information ---------------------- @@ -238,9 +314,10 @@ Troubleshooting ChecksumMismatchError ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you have previously installed an older version of the formula, -you may encounter a ChecksumMismatchError resembling the following: +you may encounter a ``ChecksumMismatchError`` resembling the following: .. code-block:: sh + :copyable: false Error: An exception occurred within a child process: From 15cd5deef422a64584e2f5afd46b5e9037be32c8 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 18 Nov 2020 15:52:46 -0500 Subject: [PATCH 19/97] DOCS-13959 release 4.4.2 --- config/build_conf.yaml | 2 +- source/includes/changelogs/releases/4.4.2.rst | 20 +++++++++++++++---- source/release-notes/4.4.txt | 4 ++-- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/config/build_conf.yaml b/config/build_conf.yaml index df62547b664..e67c1675b49 100644 --- a/config/build_conf.yaml +++ b/config/build_conf.yaml @@ -10,7 +10,7 @@ project: branched: true siteroot: true version: - release: '4.4.1' + release: '4.4.2' branch: '4.4' system: files: diff --git a/source/includes/changelogs/releases/4.4.2.rst b/source/includes/changelogs/releases/4.4.2.rst index 865de9b3331..47afb0cd230 100644 --- a/source/includes/changelogs/releases/4.4.2.rst +++ b/source/includes/changelogs/releases/4.4.2.rst @@ -15,6 +15,7 @@ Security Sharding ~~~~~~~~ +- :issue:`SERVER-36739` Use the mongos_manual_intervention_action hook in concurrency stepdown suites - :issue:`SERVER-47616` Improve error when logical sessions cannot have more than one user authenticated on a single connection - :issue:`SERVER-48504` Combination of StaleShardVersion and ShardNotFound exception make the ChunkManagerTargeter crash - :issue:`SERVER-48566` Shard loader in primary nodes blindly read the version of config.cache.collections @@ -41,6 +42,7 @@ Replication - :issue:`SERVER-49987` Rename response fields if “hello” is sent on mongod - :issue:`SERVER-49988` Rename response fields if "hello" is sent on mongos - :issue:`SERVER-49989` Add db.hello() shell helper +- :issue:`SERVER-50083` reconfig kill primary and stepdown passthroughs should disable election handoff - :issue:`SERVER-50097` inaccurate exhaustIsMasterMetrics if an isMaster command alias is used - :issue:`SERVER-50103` DBClientCursor doesn't set a socket timeout when using a side connection to send the kill cursor request - :issue:`SERVER-50116` Forbid oplog writes when replication is enabled @@ -61,6 +63,8 @@ Replication - :issue:`SERVER-50869` Background sync may erroneously set applied-through during step-up - :issue:`SERVER-51047` standalone_replication_recovery_relaxes_index_constaints.js should not run in replica_sets_multiversion in 4.4 - :issue:`SERVER-51163` Mark nodes returning InvalidReplicaSetConfig in heartbeats as down +- :issue:`SERVER-51259` Rename waitForIsMasterResponse to waitForHelloResponse +- :issue:`SERVER-51260` Rename hangWhileWaitingForIsMasterResponse to hangWhileWaitingForHelloResponse - :issue:`SERVER-51597` Don't try to cleanly shut down initial syncer when config changes - :issue:`SERVER-51726` Maintain status code compatibility when main executor is shut down @@ -73,7 +77,7 @@ Query - :issue:`SERVER-50028` Coverity analysis defect 114771: Dereference after null check - :issue:`SERVER-50029` Coverity analysis defect 115663: Uninitialized scalar variable - :issue:`SERVER-50291` Add query knob to enumerate $or children in a different order -- :issue:`SERVER-51120` Find queries with MERGE_SORT incorrectly sort the results when the collation is specified +- :issue:`SERVER-51120` Find queries with SORT_MERGE incorrectly sort the results when the collation is specified - :issue:`SERVER-51853` Always initialize the numInserted out-parameter in AbstractIndexAccessMethod::insertKeys Write Operations @@ -153,6 +157,7 @@ Internals - :issue:`SERVER-46798` remove VersionInfoInterface::isSameMajorVersion - :issue:`SERVER-47375` Complete TODO listed in SERVER-45798 - :issue:`SERVER-47827` Request for a local burn_in_tests.py that locally runs all tests changed since master, including those committed in the local branch +- :issue:`SERVER-48030` Fix deadlock with GetShardMap and old RSM - :issue:`SERVER-48067` Reduce memory consumption for unique index builds with large numbers of non-unique keys - :issue:`SERVER-48170` Multiversion tests assume primary stability when using upgradeCluster() with 2-node replica set shards - :issue:`SERVER-48324` Expose parameter to include tcmalloc verbose statistics in ftdc @@ -179,6 +184,7 @@ Internals - :issue:`SERVER-50072` Check _isWindows() when initializing MongoRunner.EXIT_ABORT - :issue:`SERVER-50123` Record number of physical cores on all platforms - :issue:`SERVER-50134` Run microbenchmarks tests through DSI +- :issue:`SERVER-50148` Fix use-after-move in MultiIndexBlock - :issue:`SERVER-50242` slow query message seen in mongos for ismaster - :issue:`SERVER-50246` $unionWith explain loses information from any stages in sub-pipeline which get absorbed into cursor stage - :issue:`SERVER-50249` Upgrade via package manager from 4.2.8 to 4.4.0 @@ -202,15 +208,22 @@ Internals - :issue:`SERVER-50955` oplog_rollover.js pauses the OplogCapMaintainerThread until truncation is needed - :issue:`SERVER-51041` Throttle starting transactions for secondary reads - :issue:`SERVER-51045` [v4.4] Update blocklist pending 4.2 backport for SERVER-46625 +- :issue:`SERVER-51097` unittests ran for more than an hour, stalling the commit queue - :issue:`SERVER-51106` Make the isMaster command a derived class of hello - :issue:`SERVER-51194` Make evergreen tasks for build-tools next - :issue:`SERVER-51220` Handle auditing attribution in indirect drops - :issue:`SERVER-51242` Disable canaries in microbenchmarks DSI tasks +- :issue:`SERVER-51303` Lookup stage followed by $match on type uses wrong field in matching condition - :issue:`SERVER-51384` Enable and Fix Compile for Drivers Nightly Testing 4.4 - :issue:`SERVER-51467` Set waitUntilStable to true when upgrading clusters in change_streams_multiversion_cluster.js - :issue:`SERVER-51604` Evergreen compile task should fail if debug symbols upload fails +- :issue:`SERVER-51607` Upgrade Twisted dependency to at least twisted-19.7.0 - :issue:`SERVER-51685` Fix download of MongoDB 4.4.1 for multiversion testing on the 4.4 branch - :issue:`SERVER-51771` libunwind fails to build with GCC >=10.2 +- :issue:`SERVER-52617` Cache the pointer to the oplog collection before running recoverToOplogTimestamp +- :issue:`SERVER-52696` Add sysbench to system_perf.yml modules +- :issue:`SERVER-52697` Add tpcc to system_perf.yml modules +- :issue:`WT-4310` Add option to not abort in diagnostic builds on data corruption - :issue:`WT-5144` Use wt_clock instead of wt_epoch in perf programs - :issue:`WT-5585` Remove cache_overflow config option - :issue:`WT-5645` Add Evergreen test that cycles through known failure test/format configs @@ -234,10 +247,10 @@ Internals - :issue:`WT-6471` Avoid the error message for non-existent clang-format binary - :issue:`WT-6472` Update timestamp_abort test cache configuration - :issue:`WT-6478` Cursor cache statistics not getting incremented -- :issue:`WT-6490` Acquire snapshot for eviction threads +- :issue:`WT-6490` Acquire snapshot for eviction threads - :issue:`WT-6505` Add debugging for missing file failure - :issue:`WT-6507` Exit cache eviction worker after our operation has timed out -- :issue:`WT-6526` Fix assertion failure when opening DB in readonly mode after unclean shutdown +- :issue:`WT-6526` Fix assertion failure when opening DB in readonly mode after unclean shutdown - :issue:`WT-6532` Consider update structure overhead in split length calculation - :issue:`WT-6544` Onpage value not appended to the tombstone restored from the data or history store - :issue:`WT-6546` Update fast truncate to use newest start durable ts @@ -246,4 +259,3 @@ Internals - :issue:`WT-6560` Fix usage of global salvage in WT utility - :issue:`WT-6561` Provide MongoDB configuration in the wt utility usage output - :issue:`WT-6569` Squash the prepared updates into a single update before writing it to data store - diff --git a/source/release-notes/4.4.txt b/source/release-notes/4.4.txt index c0c07b22192..6544fe56e70 100644 --- a/source/release-notes/4.4.txt +++ b/source/release-notes/4.4.txt @@ -15,8 +15,8 @@ Minor Releases .. _4.4.2-release-notes: -4.4.2 - Upcoming -~~~~~~~~~~~~~~~~ +4.4.2 - Nov 18, 2020 +~~~~~~~~~~~~~~~~~~~~ Issues fixed: From d6b8a951b3fbbd6c12404893fc5b645006a9270a Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 18 Nov 2020 16:17:03 -0500 Subject: [PATCH 20/97] DOCS-13970 release 4.2.11 --- source/release-notes/4.2.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/release-notes/4.2.txt b/source/release-notes/4.2.txt index 25f44ee3756..9fdcee36214 100644 --- a/source/release-notes/4.2.txt +++ b/source/release-notes/4.2.txt @@ -19,8 +19,8 @@ Minor Releases .. _4.2.11-release-notes: -4.2.11 - Upcoming -~~~~~~~~~~~~~~~~~ +4.2.11 - Nov 18, 2020 +~~~~~~~~~~~~~~~~~~~~~ Issues fixed in 4.2.11: From 5aee32c89f1a9feb64d486a7c08145634b3dd0d2 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Fri, 6 Nov 2020 14:18:51 -0500 Subject: [PATCH 21/97] DOCS-13917 forbid manual writes to oplog when replset --- source/core/replica-set-oplog.txt | 7 ++ source/reference/local-database.txt | 25 ++++--- source/tutorial/troubleshoot-replica-sets.txt | 71 ------------------- 3 files changed, 22 insertions(+), 81 deletions(-) diff --git a/source/core/replica-set-oplog.txt b/source/core/replica-set-oplog.txt index f445bc38ef3..c0cf9dcee5d 100644 --- a/source/core/replica-set-oplog.txt +++ b/source/core/replica-set-oplog.txt @@ -257,3 +257,10 @@ the ``local.oplog.rs`` collection from a standalone MongoDB instance, and we recommend that you do not drop the collection from a standalone MongoDB v4.0 instance. The :ref:`mongod` requires the oplog for both :ref:`replication` and recovery of a node if the node goes down. + +Starting in MongoDB 4.4.2, it is no longer possible to perform manual +write operations to the :doc:`oplog ` on a +cluster running as a :ref:`replica set `. Performing write +operations to the oplog when running as a +:term:`standalone instance ` should only be done with +guidance from MongoDB Support. diff --git a/source/reference/local-database.txt b/source/reference/local-database.txt index e2f5569e2fb..1fec1d8e786 100644 --- a/source/reference/local-database.txt +++ b/source/reference/local-database.txt @@ -26,8 +26,8 @@ instance-specific data. The ``local`` database is invisible to replication: collections in the ``local`` database are not replicated. -Collection on all ``mongod`` Instances --------------------------------------- +Collections on all ``mongod`` Instances +--------------------------------------- .. data:: local.startup_log @@ -118,14 +118,19 @@ Collections on Replica Set Members :data:`local.oplog.rs` is the capped collection that holds the :term:`oplog`. You set its size at creation using the - :setting:`~replication.oplogSizeMB` setting. To resize the oplog after replica set - initiation, use the :doc:`/tutorial/change-oplog-size` - procedure. For additional information, see the - :ref:`replica-set-oplog-sizing` section. - - .. note:: - - .. include:: /includes/fact-oplog-size.rst + :setting:`~replication.oplogSizeMB` setting. To resize the oplog + after replica set initiation, use the + :doc:`/tutorial/change-oplog-size` procedure. For additional + information, see the :ref:`replica-set-oplog-sizing` section. + + .. include:: /includes/fact-oplog-size.rst + + Starting in MongoDB 4.4.2, it is no longer possible to perform manual + write operations to the :doc:`oplog ` on a + cluster running as a :ref:`replica set `. Performing + write operations to the oplog when running as a + :term:`standalone instance ` should only be done with + guidance from MongoDB Support. .. data:: local.replset.minvalid diff --git a/source/tutorial/troubleshoot-replica-sets.txt b/source/tutorial/troubleshoot-replica-sets.txt index 0807d029207..9dd135112bd 100644 --- a/source/tutorial/troubleshoot-replica-sets.txt +++ b/source/tutorial/troubleshoot-replica-sets.txt @@ -291,74 +291,3 @@ tutorial. .. [#oplog] .. include:: /includes/fact-oplog-size.rst - -Oplog Entry Timestamp Error ---------------------------- - -.. todo:: link assertion 13290 here once assertion guide exists. - -Consider the following error in :binary:`~bin.mongod` output and logs: - -.. code-block:: javascript - - replSet error fatal couldn't query the local local.oplog.rs collection. Terminating mongod after 30 seconds. - [rsStart] bad replSet oplog entry? - -Often, an incorrectly typed value in the ``ts`` field in the last -:term:`oplog` entry causes this error. The correct data type is -Timestamp. - -Check the type of the ``ts`` value using the following two queries -against the oplog collection: - -.. code-block:: javascript - - db = db.getSiblingDB("local") - db.oplog.rs.find().sort({$natural:-1}).limit(1) - db.oplog.rs.find({ts:{$type:17}}).sort({$natural:-1}).limit(1) - -The first query returns the last document in the oplog, while the -second returns the last document in the oplog where the ``ts`` value -is a Timestamp. The :query:`$type` operator allows you to select -:term:`BSON type ` 17, is the Timestamp data type. - -If the queries don't return the same document, then the last document in -the oplog has the wrong data type in the ``ts`` field. - -.. example:: - - If the first query returns this as the last oplog entry: - - .. code-block:: javascript - - { "ts" : {t: 1347982456000, i: 1}, - "h" : NumberLong("8191276672478122996"), - "op" : "n", - "ns" : "", - "o" : { "msg" : "Reconfig set", "version" : 4 } } - - And the second query returns this as the last entry where ``ts`` - has the ``Timestamp`` type: - - .. code-block:: javascript - - { "ts" : Timestamp(1347982454000, 1), - "h" : NumberLong("6188469075153256465"), - "op" : "n", - "ns" : "", - "o" : { "msg" : "Reconfig set", "version" : 3 } } - - Then the value for the ``ts`` field in the last oplog entry is of the - wrong data type. - -To set the proper type for this value and resolve this issue, -use an update operation that resembles the following: - -.. code-block:: javascript - - db.oplog.rs.update( { ts: { t:1347982456000, i:1 } }, - { $set: { ts: new Timestamp(1347982456000, 1)}}) - -Modify the timestamp values as needed based on your oplog entry. This -operation may take some period to complete because the update must -scan and pull the entire oplog into memory. From eaec9b0c12e41fba66fd7374af6dda24b8b263ad Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Wed, 21 Oct 2020 17:39:18 -0400 Subject: [PATCH 22/97] DOCS-13778 Add pipeline, arrayFilters metrics to serverStatus --- source/core/aggregation-pipeline.txt | 2 + ...xtracts-server-status-projection-base.yaml | 14 ++++ source/reference/command/serverStatus.txt | 80 ++++++++++++++++++- source/reference/method/db.serverStatus.txt | 48 +++++++++++ source/reference/operator/update.txt | 2 + 5 files changed, 143 insertions(+), 3 deletions(-) diff --git a/source/core/aggregation-pipeline.txt b/source/core/aggregation-pipeline.txt index 469b6042f01..e01c41fc7ac 100644 --- a/source/core/aggregation-pipeline.txt +++ b/source/core/aggregation-pipeline.txt @@ -1,3 +1,5 @@ +.. _aggregation-top-level-server: + ==================== Aggregation Pipeline ==================== diff --git a/source/includes/extracts-server-status-projection-base.yaml b/source/includes/extracts-server-status-projection-base.yaml index 9a971b75731..364b260d54c 100644 --- a/source/includes/extracts-server-status-projection-base.yaml +++ b/source/includes/extracts-server-status-projection-base.yaml @@ -15,6 +15,20 @@ content: | ref: _serverStatus-output-changes content: | + - Starting in MongoDB 4.4.2, {{operationName}}: + + - Added new metrics to track use of Aggregation Pipeline methods: + + - :serverstatus:`metrics.commands.update.pipeline` + + - :serverstatus:`metrics.commands.findAndModify.pipeline` + + - Added new metrics to track use of arrayFilter methods: + + - :serverstatus:`metrics.commands.update.arrayFilters` + + - :serverstatus:`metrics.commands.findAndModify.arrayFilters` + - Starting in MongoDB 4.4, {{operationName}}: - Added new metrics to track write concern failures caused diff --git a/source/reference/command/serverStatus.txt b/source/reference/command/serverStatus.txt index debcb5c9ac9..5dc40b71af3 100644 --- a/source/reference/command/serverStatus.txt +++ b/source/reference/command/serverStatus.txt @@ -35,8 +35,20 @@ The command has the following syntax: db.runCommand( { serverStatus: 1 } ) The value (i.e. ``1`` above) does not affect the operation of the -command. The :binary:`~bin.mongo` shell provides the -:method:`db.serverStatus()` wrapper for the command. +command. The ``db.serverStatus()`` command returns a large amount of +data. To return a specific object or field from the output append the +object or field name to the command. + +For example: + +.. code-block:: javascript + + db.runCommand({ serverStatus: 1}).metrics + db.runCommand({ serverStatus: 1}).metrics.commands + db.runCommand({ serverStatus: 1}).metrics.commands.update + +The :binary:`~bin.mongo` shell provides the :method:`db.serverStatus()` +wrapper for the :dbcommand:`serverStatus` command. .. seealso:: @@ -63,6 +75,30 @@ all :ref:`server-status-repl` information in the output: db.runCommand( { serverStatus: 1, repl: 1 } ) +Initialization +~~~~~~~~~~~~~~ + +The statistics reported by :dbcommand:`serverStatus` are reset when the +:binary:`~bin.mongod` server is restarted. + +This command will always return a value, even on a fresh database. The +related command :method:`db.serverStatus()` does not always return a +value unless a counter has started to increment for a particular +metric. + +After you run an update query, ``db.serverStatus()`` and +``db.runCommand({ serverStatus: 1})`` both return the same values. + +.. code-block:: javascript + :copyable: false + + { + "arrayFilters" : NumberLong(0), + "failed" : NumberLong(0), + "pipeline" : NumberLong(0), + "total" : NumberLong(1) + } + Include ``mirroredReads`` ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -4035,7 +4071,6 @@ metrics ``replSetStepDown``. In earlier versions, the command reported only overall ``replSetStepDown`` metrics. - .. serverstatus:: metrics.commands..failed The number of times ```` failed on this @@ -4046,6 +4081,45 @@ metrics The number of times ```` executed on this :binary:`~bin.mongod`. +.. serverstatus:: metrics.commands.update.pipeline + + The number of times an + :ref:`aggregation pipeline ` + was used to update documents on this :binary:`~bin.mongod`. Subtract + this value from the total number of updates to get the number of + updates made with :ref:`document ` + syntax. + + The ``pipeline`` counter is only available for ``update`` and + ``findAndModify`` operations. + +.. serverstatus:: metrics.commands.findAndModify.pipeline + + The number of times :method:`~db.collection.findAndModify()` was + used in an + :ref:`aggregation pipeline ` + to update documents on this :binary:`~bin.mongod`. + + The ``pipeline`` counter is only available for ``update`` and + ``findAndModify`` operations. + +.. serverstatus:: metrics.commands.update.arrayFilters + + The number of times an :ref:`arrayFilter ` + was used to update documents on this :binary:`~bin.mongod`. + + The ``arrayFilters`` counter is only available for ``update`` and + ``findAndModify`` operations. + +.. serverstatus:: metrics.commands.findAndModify.arrayFilters + + The number of times an :ref:`arrayFilter ` + was used with :method:`~db.collection.findAndModify()` to update + documents on this :binary:`~bin.mongod`. + + The ``arrayFilters`` counter is only available for ``update`` and + ``findAndModify`` operations. + .. serverstatus:: metrics.document A document that reflects document access and modification patterns. diff --git a/source/reference/method/db.serverStatus.txt b/source/reference/method/db.serverStatus.txt index a0b41033f5d..b54057130d5 100644 --- a/source/reference/method/db.serverStatus.txt +++ b/source/reference/method/db.serverStatus.txt @@ -37,6 +37,54 @@ information in the output: db.serverStatus( { repl: 1 } ) +Initialization +~~~~~~~~~~~~~~ + +The statistics reported by :method:`db.serverStatus()` are reset when +the :binary:`~bin.mongod` server is restarted. The :method:`db.serverStatus()` +command does not report some statistics until they have been +initialized by server events. + +For example, after restarting the :binary:`~bin.mongod` server, +:method:`db.serverStatus()` won't return any values for ``findAndModify``. + +.. code-block:: javascript + + db.serverStatus().metrics.commands.findAndModify + // No results returned + +After you run an update query, subsequent calls to +:method:`db.serverStatus()` display the expected metrics. + +.. code-block:: javascript + :copyable: false + + { + "arrayFilters" : NumberLong(0), + "failed" : NumberLong(0), + "pipeline" : NumberLong(0), + "total" : NumberLong(1) + } + +.. note:: + + The ``db.serverStatus()`` method returns an error if a specific + object is queried before the counters have begun to increment. + + If there haven't been any document updates yet: + + .. code-block:: javascript + + db.serverStatus().metrics.commands.update.pipeline + + Returns: + + .. code-block:: javascript + :copyable: false + + TypeError: db.serverStatus(...).metrics.commands.update is undefined : + @(shell):1:1 + Include ``mirroredReads`` ~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/reference/operator/update.txt b/source/reference/operator/update.txt index dd18bb2a89e..171d7486ee0 100644 --- a/source/reference/operator/update.txt +++ b/source/reference/operator/update.txt @@ -10,6 +10,8 @@ Update Operators :depth: 1 :class: singlecol +.. _update-operators-top-level: + The following modifiers are available for use in update operations; e.g. in :method:`db.collection.update()` and :method:`db.collection.findAndModify()`. From 5e0a3fe1793222275899b95782dc1edbe410a9a0 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 18 Nov 2020 16:37:55 -0500 Subject: [PATCH 23/97] DOCS-13959 add back missing 4.4.2 tickets to changelog --- source/includes/changelogs/releases/4.4.2.rst | 83 ++++++++++++++++++- 1 file changed, 79 insertions(+), 4 deletions(-) diff --git a/source/includes/changelogs/releases/4.4.2.rst b/source/includes/changelogs/releases/4.4.2.rst index 47afb0cd230..ad926846c36 100644 --- a/source/includes/changelogs/releases/4.4.2.rst +++ b/source/includes/changelogs/releases/4.4.2.rst @@ -108,7 +108,7 @@ Storage - :issue:`SERVER-47803` Move the database level profile setting from Database into CollectionCatalog - :issue:`SERVER-47812` Secondaries persist wildcard multikeypaths out of order - :issue:`SERVER-47959` Retry JournalFlusher oplog reads on WriteConflictExceptions caused by concurrent {full:true} validate command on the oplog collection -- :issue:`SERVER-48021` Add WT debug table logging mode to *kill_(primary|secondary)* tests +- :issue:`SERVER-48021` Add WT debug table logging mode to ``*kill_(primary|secondary)*`` tests - :issue:`SERVER-48154` ident dropper should periodically yield Global IS lock - :issue:`SERVER-48245` index drop allowed on drop-pending collection - :issue:`SERVER-49776` Forward port MDB <-> WT versioning table from 4.2 to 4.4 and master, please @@ -191,7 +191,7 @@ Internals - :issue:`SERVER-50326` Restrict sharding in agg_out.js workload to a single thread - :issue:`SERVER-50365` Stuck with long-running transactions that can't be timed out - :issue:`SERVER-50376` Ninja next does not see compiler changes -- :issue:`SERVER-50379` Reduce frequency of ! and * builders on 4.4 +- :issue:`SERVER-50379` Reduce frequency of ``!`` and ``*`` builders on 4.4 - :issue:`SERVER-50394` mongod audit log attributes DDL operations to the __system user in a sharded environment - :issue:`SERVER-50401` Handle patches applied as commits - :issue:`SERVER-50490` Reduce log severity of SERVER RESTARTED from Warning(-2) back to Log(0) @@ -247,10 +247,10 @@ Internals - :issue:`WT-6471` Avoid the error message for non-existent clang-format binary - :issue:`WT-6472` Update timestamp_abort test cache configuration - :issue:`WT-6478` Cursor cache statistics not getting incremented -- :issue:`WT-6490` Acquire snapshot for eviction threads +- :issue:`WT-6490` Acquire snapshot for eviction threads - :issue:`WT-6505` Add debugging for missing file failure - :issue:`WT-6507` Exit cache eviction worker after our operation has timed out -- :issue:`WT-6526` Fix assertion failure when opening DB in readonly mode after unclean shutdown +- :issue:`WT-6526` Fix assertion failure when opening DB in readonly mode after unclean shutdown - :issue:`WT-6532` Consider update structure overhead in split length calculation - :issue:`WT-6544` Onpage value not appended to the tombstone restored from the data or history store - :issue:`WT-6546` Update fast truncate to use newest start durable ts @@ -259,3 +259,78 @@ Internals - :issue:`WT-6560` Fix usage of global salvage in WT utility - :issue:`WT-6561` Provide MongoDB configuration in the wt utility usage output - :issue:`WT-6569` Squash the prepared updates into a single update before writing it to data store +- :issue:`WT-6570` RTS to remove the left over updates in the history store without stop timestamp +- :issue:`WT-6571` Lseek cannot use error_sys_check because it does not return an int +- :issue:`WT-6577` History store dump outputs confusing time window +- :issue:`WT-6581` Fix class name in test_hs15 +- :issue:`WT-6583` Only clear the read timestamp when releasing the transaction +- :issue:`WT-6586` Tombstone inserted to history store should also be flagged as WT_UPDATE_HS +- :issue:`WT-6589` Fix disabled cursor cache python tests +- :issue:`WT-6591` Stop checkpoint thread before closing connection in Python tests +- :issue:`WT-6592` Avoid marking errors for skipped Python tests due to not-built extension +- :issue:`WT-6593` Retry conflicting operations in test_rollback_to_stable10 +- :issue:`WT-6596` Increase cache for timestamp abort test and separate key spaces for all abort tests +- :issue:`WT-6598` Add new API allowing changing dhandle hash bucket size +- :issue:`WT-6602` Allow operation timeout ms to be passed to commit and rollback +- :issue:`WT-6604` Fix typo in the comment descibing WT_CELL structure +- :issue:`WT-6610` Fix incremental backup checkpoint parsing to handle upgrades +- :issue:`WT-6612` Increase cache size in test_prepare08 to fix rollback error due to cache pressure +- :issue:`WT-6613` Add python test for early_load flag +- :issue:`WT-6615` Initialize last_upd where it is actually used +- :issue:`WT-6616` Set the oldest timestamp of the checkpoint when it is finished +- :issue:`WT-6619` Eliminate possibility of infinite loop in test_cursor13.py +- :issue:`WT-6624` Use transaction snapshot for applications performing eviction +- :issue:`WT-6625` Remove outdated TODO +- :issue:`WT-6629` Support index tables in metadata:create cursors +- :issue:`WT-6635` Disable mix and column filetype test +- :issue:`WT-6640` Coverity: Failure to restore saved dhandle +- :issue:`WT-6641` Coverity: Unused value +- :issue:`WT-6643` Explicitly set the 64-bit uint part of the LSN for atomic assignment +- :issue:`WT-6649` Coverity: Unintentional integer overflow in __wt_rec_need_split +- :issue:`WT-6650` Coverity: Null dereferences in session::close +- :issue:`WT-6653` Rollback/Restart txn before retry in RTS test +- :issue:`WT-6654` Clean up test_backup15.py +- :issue:`WT-6657` Fix history store panic when inserting an update without timestamp +- :issue:`WT-6666` Start op timer when we configure it in rollback and commit +- :issue:`WT-6670` Fix uninitialized buffer +- :issue:`WT-6671` Save the checkpoint snapshot that is used to take checkpoint in the metadata +- :issue:`WT-6674` Remove Async API code and documentation +- :issue:`WT-6675` Remove WiredTiger Java language API and documentation +- :issue:`WT-6680` Temporarily disable history store verification +- :issue:`WT-6683` Fix logically dead code +- :issue:`WT-6685` Add import configuration option to WT_SESSION::create +- :issue:`WT-6689` Add support for file import when the exported configuration is provided +- :issue:`WT-6690` Add support for table import when the exported configuration is provided +- :issue:`WT-6691` Add file import repair functionality +- :issue:`WT-6692` Handle scenario where imported timestamps are newer than current DB's timestamps +- :issue:`WT-6708` Repurpose oldest start txn to be newest txn in the aggregated time window +- :issue:`WT-6712` Allow RTS to operate when stable timestamp is not set +- :issue:`WT-6720` Add new hs open() and close() methods +- :issue:`WT-6725` Skip checking visibility for updates restored from disk +- :issue:`WT-6731` Prevent WT_RESTART from being returned to API calls +- :issue:`WT-6732` Fix post-task command noises in Evergreen task logs +- :issue:`WT-6734` Add missing brace to Swig Java interface +- :issue:`WT-6736` Add statistics to track evictions in parallel with checkpoint +- :issue:`WT-6741` Add check for supported data source on import +- :issue:`WT-6746` Save base write gen in metadata during checkpoint +- :issue:`WT-6756` Rearrange top level of documentation +- :issue:`WT-6761` Ignore stdout for test_rollback_to_stable10 +- :issue:`WT-6762` Use stats instead of files to check consumption +- :issue:`WT-6763` Fix freeing update on the chain when insert fail after inserting to the update chain +- :issue:`WT-6764` Wait for stable timestamp to move before publishing checkpoint information in timestamp abort test +- :issue:`WT-6765` Add more debugging and earlier detection of missing file +- :issue:`WT-6767` Adding a new read timestamp config that allows it to be set older than the oldest timestamp +- :issue:`WT-6783` Generate unique keys for table to ensure log records +- :issue:`WT-6792` Update compatibility tests to test against mongodb-5.0 branch +- :issue:`WT-6793` Organize code statistics Evergreen tasks +- :issue:`WT-6797` Ensure minimum entries before short-circuiting +- :issue:`WT-6798` Utilize Arm LSE atomics and the correct strength barriers +- :issue:`WT-6806` Back off aggressive abort in random_directio +- :issue:`WT-6808` Documentation: add top level architecture picture +- :issue:`WT-6809` Avoid deadlock by moving hs cursor caching earlier +- :issue:`WT-6811` Allow older readers to read behind a mixed-mode operation +- :issue:`WT-6812` Fix "out-of-order fixup" potentially corrupting historical values +- :issue:`WT-6813` Fix memory leak in schema_create +- :issue:`WT-6822` Use the correct python for all tests and set up env for the split stress test +- :issue:`WT-6827` Run scons check examples in sequence not parallel + From 41014860076733417ffb3615e47baf89fd202f8d Mon Sep 17 00:00:00 2001 From: Jeff Allen Date: Thu, 19 Nov 2020 10:26:16 -0500 Subject: [PATCH 24/97] raise issue limit for changelog script --- changelogs/generatechangelogs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelogs/generatechangelogs.py b/changelogs/generatechangelogs.py index 84edfe64220..bae0bf86177 100644 --- a/changelogs/generatechangelogs.py +++ b/changelogs/generatechangelogs.py @@ -52,7 +52,7 @@ def get_jira_issues(fixVersion): # Run the JIRA query query = "project in {0} and fixVersion = {1} and resolution = 'Fixed' ORDER BY key ASC".format( projects, fixVersion) - issues = auth_jira.search_issues(query, maxResults=200) + issues = auth_jira.search_issues(query, maxResults=500) logger.info("building changelog for {0} with {1} issue(s)".format( fixVersion, len(issues))) From 372d0ee2745b1bea5cb7cdcf51f284c8d2648b1a Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Tue, 17 Nov 2020 15:06:03 -0600 Subject: [PATCH 25/97] DOCS-13846 error message for createIndex --- .../method/db.collection.createIndex.txt | 25 ++++++++++-- .../method/db.collection.createIndexes.txt | 39 +++++++++++++++---- 2 files changed, 54 insertions(+), 10 deletions(-) diff --git a/source/reference/method/db.collection.createIndex.txt b/source/reference/method/db.collection.createIndex.txt index 6617cfe7f29..0eb26c75fae 100644 --- a/source/reference/method/db.collection.createIndex.txt +++ b/source/reference/method/db.collection.createIndex.txt @@ -159,10 +159,29 @@ The ``options`` document contains a set of options that controls the creation of the index. Different index types can have additional options specific for that type. -.. versionchanged:: 3.4 +Multiple index options can be specified in the same document. However, +if you specify mutiple option documents the :method:`db.collection.createIndex()` +operation will fail. - Added support for :ref:`collation option - `. +Consider the following :method:`db.collection.createIndex()` operation: + +.. code-block:: javascript + + db.collection.createIndex( + { + "a": 1 + }, + { + unique: true, + sparse: true, + expireAfterSeconds: 3600 + } + ) + +If the options specification had been split into multiple documents +like this: +``{ unique: true }, { sparse: true, expireAfterSeconds: 3600 }`` +the index creation operation would have failed. Options for All Index Types ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/reference/method/db.collection.createIndexes.txt b/source/reference/method/db.collection.createIndexes.txt index 7a5d7c5a6eb..00ae3bbf45b 100644 --- a/source/reference/method/db.collection.createIndexes.txt +++ b/source/reference/method/db.collection.createIndexes.txt @@ -159,7 +159,37 @@ The ``options`` document contains a set of options that control the creation of the indexes. Different index types can have additional options specific for that type. +Multiple index options can be specified in the same document. However, +if you specify mutiple option documents the :method:`db.collection.createIndexes()` +operation will fail. + +Consider the following :method:`db.collection.createIndexes()` operation: + +.. code-block:: javascript + + db.collection.createIndexes( + [ + { + "a": 1 + }, + { + "b": 1 + } + ], + { + unique: true, + sparse: true, + expireAfterSeconds: 3600 + } + ) + +If the options specification had been split into multiple documents +like this: +``{ unique: true }, { sparse: true, expireAfterSeconds: 3600 }`` +the index creation operation would have failed. + .. important:: + When you specify options to :method:`db.collection.createIndexes()`, the options apply to *all* of the specified indexes. For example, if you specify a @@ -167,13 +197,8 @@ options specific for that type. collation. :method:`db.collection.createIndexes()` will return an error if you - attempt to create indexes with incompatible options. Refer to the - options descriptions for more information. - -.. versionchanged:: 3.4 - - Added support for :ref:`collation - `. + attempt to create indexes with incompatible options or too many + arguments. Refer to the option descriptions for more information. Options for All Index Types ~~~~~~~~~~~~~~~~~~~~~~~~~~~ From e35007b0a447299a3bc7831cb9104d481f1dc133 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Fri, 20 Nov 2020 10:17:58 -0500 Subject: [PATCH 26/97] DOCS-13846 fix code-block intendation --- .../method/db.collection.createIndex.txt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/source/reference/method/db.collection.createIndex.txt b/source/reference/method/db.collection.createIndex.txt index 0eb26c75fae..6ec2433bc91 100644 --- a/source/reference/method/db.collection.createIndex.txt +++ b/source/reference/method/db.collection.createIndex.txt @@ -167,16 +167,16 @@ Consider the following :method:`db.collection.createIndex()` operation: .. code-block:: javascript - db.collection.createIndex( - { - "a": 1 - }, - { - unique: true, - sparse: true, - expireAfterSeconds: 3600 - } - ) + db.collection.createIndex( + { + "a": 1 + }, + { + unique: true, + sparse: true, + expireAfterSeconds: 3600 + } + ) If the options specification had been split into multiple documents like this: From 540fddf9bac43c5a5a415458801e879154cc451a Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Fri, 20 Nov 2020 12:34:25 -0500 Subject: [PATCH 27/97] DOCS-13977 clarify serverStatus.network ingress only --- source/reference/command/serverStatus.txt | 27 ++++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/source/reference/command/serverStatus.txt b/source/reference/command/serverStatus.txt index 5dc40b71af3..098650bdf92 100644 --- a/source/reference/command/serverStatus.txt +++ b/source/reference/command/serverStatus.txt @@ -1325,21 +1325,26 @@ network .. serverstatus:: network - A document that reports data on MongoDB's network use. + A document that reports data on MongoDB's network use. These + statistics measure *ingress connections* only, i.e. traffic + seen by the :binary:`~bin.mongod` / :binary:`~bin.mongos` over + network connections initiated by clients or other + :binary:`~bin.mongod` / :binary:`~bin.mongos` instances. Traffic from + network connections initiated by this :binary:`~bin.mongod` / + :binary:`~bin.mongos` instance (i.e. *egress connections*) is *not* + measured in these statistics. .. serverstatus:: network.bytesIn - The number of bytes that reflects the amount of network traffic - received *by* this database. Use this value to ensure that network - traffic sent to the :binary:`~bin.mongod` process is consistent with - expectations and overall inter-application traffic. + The total number of bytes that the server has *received* over network + connections initiated by clients or other :binary:`~bin.mongod` / + :binary:`~bin.mongos` instances. .. serverstatus:: network.bytesOut - The number of bytes that reflects the amount of network traffic sent - *from* this database. Use this value to ensure that network traffic - sent by the :binary:`~bin.mongod` process is consistent with - expectations and overall inter-application traffic. + The total number of bytes that the server has *sent* over network + connections initiated by clients or other :binary:`~bin.mongod` / + :binary:`~bin.mongos` instances. .. serverstatus:: network.numSlowDNSOperations @@ -1412,8 +1417,8 @@ network .. versionadded:: 4.4 The total number of accepted incoming TCP Fast Open (TFO) connections - to the :binary:`~bin.mongod`/:binary:`~bin.mongos` since the - ``mongod/mongos`` last started. + to the :binary:`~bin.mongod` / :binary:`~bin.mongos` since the + ``mongod / mongos`` last started. opLatencies ~~~~~~~~~~~ From 062e75fe155b01fdd1b8d769565065ad6a7f98cb Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Fri, 20 Nov 2020 16:34:16 -0500 Subject: [PATCH 28/97] DOCSP-13287 explicit CSFLE docs reference automatic CSFLE erroneously --- source/core/security-explicit-client-side-encryption.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/core/security-explicit-client-side-encryption.txt b/source/core/security-explicit-client-side-encryption.txt index 1eee2cf72e5..ce968efa4e4 100644 --- a/source/core/security-explicit-client-side-encryption.txt +++ b/source/core/security-explicit-client-side-encryption.txt @@ -93,12 +93,12 @@ implementing explicit client-side field level encryption. The MongoDB 4.2 :binary:`~bin.mongo` shell adds an additional option to the :method:`Mongo()` method for instantiating a database -connection with automatic client-side field level encryption. +connection with explicit client-side field level encryption. For a complete example, see :ref:`mongo-connection-client-side-encryption-enabled`. Applications must specify the following components when instantiating -the database connection to enable automatic client-side field level +the database connection to enable explicit client-side field level encryption: - A :ref:`key vault ` of data From 0aec0a52353c2e3dcfccca414ecca5ea96c426a7 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 23 Nov 2020 13:56:43 -0500 Subject: [PATCH 29/97] DOCS-13995 refresh 4.2.11 changelog --- source/includes/changelogs/releases/4.2.11.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/source/includes/changelogs/releases/4.2.11.rst b/source/includes/changelogs/releases/4.2.11.rst index 846c82d4cec..f04ea06eeab 100644 --- a/source/includes/changelogs/releases/4.2.11.rst +++ b/source/includes/changelogs/releases/4.2.11.rst @@ -12,7 +12,6 @@ Sharding ~~~~~~~~ - :issue:`SERVER-36739` Use the mongos_manual_intervention_action hook in concurrency stepdown suites -- :issue:`SERVER-46393` Always check client last operation time when computing operationTime to append to the response - :issue:`SERVER-47616` Improve error when logical sessions cannot have more than one user authenticated on a single connection - :issue:`SERVER-51808` invariant failure: readConcern level != Available @@ -23,7 +22,6 @@ Replication - :issue:`SERVER-50116` Forbid oplog writes when replication is enabled - :issue:`SERVER-50415` Rename waitInIsMaster failpoint to waitInHello - :issue:`SERVER-50527` Change NotMasterError category to NotPrimaryError -- :issue:`SERVER-52560` oplog_writes_only_permitted_on_standalone.js must wait for insert to be in stable checkpoint Query ~~~~~ @@ -81,7 +79,6 @@ Internals - :issue:`SERVER-51106` Make the isMaster command a derived class of hello - :issue:`SERVER-51220` Handle auditing attribution in indirect drops - :issue:`SERVER-51303` Lookup stage followed by $match on type uses wrong field in matching condition -- :issue:`SERVER-51607` Upgrade Twisted dependency to at least twisted-19.7.0 - :issue:`SERVER-51840` Reduce dbtest jobs on 4.2 on Windows debug - :issue:`TOOLS-2588` [v4.2] sslAllowInvalidHostnames bypass ssl/tls server certification validation entirely - :issue:`WT-6160` Fix format failure caused by stack overwrite From 8a32b9df929579737c47e71fdb19b8a7c42403a4 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 23 Nov 2020 14:57:20 -0500 Subject: [PATCH 30/97] DOCSP-11591 update SELinux FTDC note, still required --- .../includes/fact-selinux-redhat-options.rst | 114 +++++++++--------- 1 file changed, 59 insertions(+), 55 deletions(-) diff --git a/source/includes/fact-selinux-redhat-options.rst b/source/includes/fact-selinux-redhat-options.rst index 5fa20005b61..4b20bd4d2b2 100644 --- a/source/includes/fact-selinux-redhat-options.rst +++ b/source/includes/fact-selinux-redhat-options.rst @@ -1,7 +1,10 @@ .. important:: If SELinux is in ``enforcing`` mode, you must customize your SELinux - policy for MongoDB. + policy for MongoDB by making the following two policy adjustments: + +Permit Access to ``cgroup`` ++++++++++++++++++++++++++++ .. container:: @@ -48,17 +51,65 @@ The MongoDB process is now able to access the correct files with SELinux set to ``enforcing``. +Permit Access to ``netstat`` for FTDC ++++++++++++++++++++++++++++++++++++++ + +.. container:: + + The current SELinux Policy does not allow the MongoDB process to open + and read ``/proc/net/netstat``, which is required for + :ref:`Full Time Diagnostic Data Capture (FTDC) `. + If you intend to run SELinux in + ``enforcing`` mode, you will need to make the following adjustment + to your SELinux policy: + + #. Ensure your system has the ``checkpolicy`` package installed: + + .. code-block:: sh + + sudo yum install checkpolicy + + #. Create a custom policy file :file:`mongodb_proc_net.te`: + + .. code-block:: sh + + cat > mongodb_proc_net.te <`. -Non-Default MongoDB Directory Path(s) +Using a Custom MongoDB Directory Path +++++++++++++++++++++++++++++++++++++ .. container:: @@ -127,58 +178,11 @@ Non-Default MongoDB Directory Path(s) restorecon -R -v '/mongodb/log' -Non-Default MongoDB Ports -+++++++++++++++++++++++++ +Using a Custom MongoDB Port ++++++++++++++++++++++++++++ .. container:: .. code-block:: sh sudo semanage port -a -t mongod_port_t -p tcp - -*Optional.* Suppress ``FTDC`` Warnings -++++++++++++++++++++++++++++++++++++++ - -.. container:: - - The current SELinux Policy does not allow the MongoDB process to open - and read ``/proc/net/netstat`` for :ref:`param-ftdc` (FTDC). As such, - the audit log may include numerous messages regarding lack of access - to this path. - - To track the proposed fix, see ``__. - - Optionally, as a temporary fix, you can manually adjust the SELinux - Policy: - - #. Ensure your system has the ``checkpolicy`` package installed: - - .. code-block:: sh - - sudo yum install checkpolicy - - #. Create a custom policy file :file:`mongodb_proc_net.te`: - - .. code-block:: sh - - cat > mongodb_proc_net.te < Date: Fri, 20 Nov 2020 12:08:29 -0500 Subject: [PATCH 31/97] DOCSP-13255 fix TLS enchange private key --- source/tutorial/configure-ssl.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/tutorial/configure-ssl.txt b/source/tutorial/configure-ssl.txt index 1fad6fe9617..5651441efb0 100644 --- a/source/tutorial/configure-ssl.txt +++ b/source/tutorial/configure-ssl.txt @@ -49,8 +49,9 @@ Certificate Authorities When establishing a TLS/SSL connection, the :binary:`~bin.mongod`/:binary:`~bin.mongos` presents a certificate key -file (containing a public key certificate and its associated private -key) to its clients to establish its identity. [#FIPS]_ +file to its clients to establish its identity. [#FIPS]_ The certificate +key file contains a public key certificate and its associated private +key, but only the public component is revealed to the client. MongoDB can use any valid TLS/SSL certificate issued by a certificate authority, or a self-signed certificate. If you use a self-signed From ea190782f7b4fdb11e6b1c6f87b782240be6f7aa Mon Sep 17 00:00:00 2001 From: Jeff Allen Date: Thu, 29 Oct 2020 17:47:47 -0400 Subject: [PATCH 32/97] (DOCS-13867): filter for profiler --- source/reference/command/profile.txt | 87 +++++++-- source/reference/configuration-options.txt | 47 +++++ .../method/db.getProfilingStatus.txt | 12 ++ .../reference/method/db.setProfilingLevel.txt | 166 ++++++++++++++++-- .../tutorial/manage-the-database-profiler.txt | 59 ++++++- 5 files changed, 336 insertions(+), 35 deletions(-) diff --git a/source/reference/command/profile.txt b/source/reference/command/profile.txt index a2a5b0831c0..9bdc2794ab6 100644 --- a/source/reference/command/profile.txt +++ b/source/reference/command/profile.txt @@ -15,28 +15,46 @@ Definition .. dbcommand:: profile - .. versionchanged:: 4.0 - - The command can be run on :binary:`~bin.mongos` with ``profile`` - level: - - - ``0`` to set the ``slowms`` and ``sampleRate`` for the system - log; i.e. you cannot enable the profiler on a - :binary:`~bin.mongos`. - - - ``-1`` to read the current settings. + .. versionchanged:: 4.4.2 For a :binary:`~bin.mongod` instance, the command enables, disables, or configures the :doc:`/tutorial/manage-the-database-profiler`. The profiler captures and records data on the performance of write operations, cursors, and database commands on a running :binary:`~bin.mongod` instance. If the profiler is disabled, the - command sets the ``slowms`` and ``sampleRate`` for logging slow - operations to the diagnostic log. + command configures how slow operations are logged to the diagnostic + log. + + On :binary:`~bin.mongod`, if the :ref:`database profiler level + ` is ``1`` or ``2`` (i.e. the + :doc:`database profiler ` is + enabled), the :ref:`slowms `, + :ref:`sampleRate `, and + :ref:`filter ` affect the + behavior of both the profiler and the :option:`diagnostic log `. + + If the :ref:`database profiler level ` is + ``0`` (i.e. :doc:`database profiler + ` is disabled), the + :ref:`slowms `, + :ref:`sampleRate `, and + :ref:`filter ` affect + only the diagnostic log. - For :binary:`~bin.mongos` instance, the command sets the ``slowms`` - and ``sampleRate`` configuration settings, which configure how - operations get written to the diagnostic log. + (*Starting in MongoDB 4.0*): For :binary:`~bin.mongos` instance, the + command only configures how operations get written to the diagnostic + log. You cannot enable the + :doc:`/tutorial/manage-the-database-profiler` on a + :binary:`~bin.mongos` instance because ``mongos`` does not have any + collections that the profiler can write to. + + On :binary:`~bin.mongos`, you can set ``profile`` level to: + + - ``0`` to set the ``slowms``, ``sampleRate``, and ``filter`` for + the diagnostic log; + + - ``-1`` to read the current settings. The profiler is off by default. @@ -49,7 +67,8 @@ Definition { profile: , slowms: , - sampleRate: + sampleRate: , + filter: } .. _slowms-threshold-option: @@ -111,10 +130,36 @@ Definition (available starting in MongoDB 4.2) `. .. versionadded:: 3.6 - - + + * - ``filter`` + + - object + + - Optional. + + A filter expression that controls which operations are + profiled and logged. + + The ``filter`` expression takes the following form: + .. code-block:: javascript + + { : , ... } + + The ```` can be + :ref:`any field in the profiler output `. The + ```` is a + :ref:`query condition expression `. + .. note:: + + This argument affects the same setting as the configuration + option :setting:`~operationProfiling.filter`. When + ``filter`` is set, the ``slowms`` and ``sampleRate`` + options are not used for profiling and slow-query log + lines. + + .. versionadded:: 4.4.2 The :method:`db.getProfilingStatus()` and :method:`db.setProfilingLevel()` :doc:`shell methods @@ -131,5 +176,11 @@ database while enabling or disabling the profiler. This is typically a short operation. The lock blocks other operations until the :dbcommand:`profile` command has completed. +Starting in MongoDB 4.4.2, when connected to a sharded cluster through +:binary:`~bin.mongos`, you can run the :dbcommand:`profile` command +against any database. In previous versions of MongoDB, when connected +through :binary:`~bin.mongos`, you can only run the :dbcommand:`profile` +command against the ``admin`` database. + .. seealso:: :ref:`Database Profiling `. diff --git a/source/reference/configuration-options.txt b/source/reference/configuration-options.txt index 6d75edde3ce..87538bad4fe 100644 --- a/source/reference/configuration-options.txt +++ b/source/reference/configuration-options.txt @@ -3916,6 +3916,7 @@ LDAP Parameters mode: slowOpThresholdMs: slowOpSampleRate: + filter: .. _configuration-profiling-mode: .. setting:: operationProfiling.mode @@ -4007,8 +4008,54 @@ LDAP Parameters - For :binary:`~bin.mongos` instances, the setting affects the diagnostic log only and not the profiler since profiling is not available on :binary:`~bin.mongos`. + +.. setting:: operationProfiling.filter + + *Type*: string representation of a query document + + A filter expression that controls which operations are profiled and + logged. + + When ``filter`` is set, + :setting:`~operationProfiling.slowOpThresholdMs` and + :setting:`~operationProfiling.slowOpSampleRate` are not used for + profiling and slow-query log lines. + + When you set a profile filter in the configuration file, the filter + applies to all databaes in the deployment. To set a profile filter + for a specific database, use the :method:`db.setProfilingLevel()` + method. + + The option takes a string representation of a query document + of the form: + + .. code-block:: javascript + { : , ... } + + The ```` can be :ref:`any field in the profiler output + `. The ```` is a :ref:`query condition + expression `. + + To specify a profiling filter in a :doc:`configuration file + `, you must: + + - Enclose the filter document in single quotes to pass the document + as a string. + + - Use the YAML format of the configuration file. + + For example, the following ``filter`` configures the profiler to + log ``query`` operations that take longer than 2 seconds: + + .. code-block:: yaml + :emphasize-lines: 3 + + operationProfiling: + mode: all + filter: '{ op: "query", millis: { $gt: 2000 } }' + .. versionadded:: 4.4.2 .. _replication-options: diff --git a/source/reference/method/db.getProfilingStatus.txt b/source/reference/method/db.getProfilingStatus.txt index e1f1e1c9e22..dae1082205b 100644 --- a/source/reference/method/db.getProfilingStatus.txt +++ b/source/reference/method/db.getProfilingStatus.txt @@ -16,3 +16,15 @@ db.getProfilingStatus() :setting:`~operationProfiling.slowOpThresholdMs` setting, and :setting:`~operationProfiling.slowOpSampleRate` setting. + + Starting in MongoDB 4.4.2, you can set a ``filter`` to + control which operations are logged by the profiler. When + set, any configured filters are also returned by + :method:`db.getProfilingStatus()`, along with a ``note`` + explaining filter behavior. + + You can set the profiling filter with either: + + - the :method:`db.setProfilingLevel()` shell method, or + + - the :setting:`operationProfiling.filter` configuration file option. diff --git a/source/reference/method/db.setProfilingLevel.txt b/source/reference/method/db.setProfilingLevel.txt index 52bfbddb1bc..4a5642bd4a4 100644 --- a/source/reference/method/db.setProfilingLevel.txt +++ b/source/reference/method/db.setProfilingLevel.txt @@ -17,15 +17,20 @@ Definition .. method:: db.setProfilingLevel(level, options) - The method configures :ref:`database profiler level - `, the :ref:`slowms - `, and the :ref:`sampleRate - `. + .. versionchanged:: 4.4.2 + + For a :binary:`~bin.mongod` instance, the method enables, disables, + or configures the :doc:`/tutorial/manage-the-database-profiler`. The + profiler captures and records data on the performance of write + operations, cursors, and database commands on a running + :binary:`~bin.mongod` instance. If the profiler is disabled, the + method configures how slow operations are logged to the diagnostic + log. If the :ref:`database profiler level ` is ``1`` or ``2`` (i.e. the :doc:`database profiler ` is enabled), the - :ref:`slowms ` and the + :ref:`slowms `, :ref:`sampleRate ` affect the behavior of both the profiler and the :option:`diagnostic log `. @@ -33,17 +38,26 @@ Definition If the :ref:`database profiler level ` is ``0`` (i.e. :doc:`database profiler ` is disabled), the - :ref:`slowms ` and the - :ref:`sampleRate ` affect - only the diagnostic log. - - Although profiling is unavailable on :binary:`~bin.mongos` instance, - starting in MongoDB 4.0, you can run - :method:`db.setProfilingLevel()` on :binary:`~bin.mongos` to set the :ref:`slowms ` and - :ref:`sampleRate ` for the - diagnostic log. That is, for a :binary:`~bin.mongos` instance, you - must specify ``0`` for :ref:`level `. + :ref:`sampleRate `, affect + only the diagnostic log. + + (*Starting in MongoDB 4.0*): For a :binary:`~bin.mongos` instance, + the method sets the ``slowms``, ``sampleRate`` and ``filter`` + configuration settings, which configure how operations get written to + the diagnostic log. You cannot enable the + :doc:`/tutorial/manage-the-database-profiler` on a + :binary:`~bin.mongos` instance because ``mongos`` does not have any + collections that the profiler can write to. The ``profile`` level + must be ``0`` for a :binary:`~bin.mongos` instance. + + Starting in MongoDB 4.4.2, you can specify a :ref:`filter + ` on both :binary:`~bin.mongod` + and :binary:`~bin.mongos` instances to control which operations are + logged by the profiler. When you specify a ``filter`` for the + profiler, the :ref:`slowms `, and + :ref:`sampleRate ` options + are not used for profiling and slow-query log lines. :method:`db.setProfilingLevel()` provides a wrapper around the :dbcommand:`profile` command. @@ -143,6 +157,38 @@ Parameters This argument affects the same setting as the configuration option :setting:`~operationProfiling.slowOpSampleRate`. + * - :ref:`filter ` + + - .. _set-profiling-level-options-filter: + + Type: object + + A filter expression that controls which operations are + profiled and logged. The field in the filter expression + can be :ref:`any field in the profiler output `. + + For :binary:`~bin.mongod` instances, the setting affects both the + diagnostic log and, if enabled, the profiler. + + For :binary:`~bin.mongos` instances, the setting affects the + diagnostic log only and not the profiler since profiling is not + available on :binary:`~bin.mongos`. + + For an example of a filter used to control logged + operations, see :ref:`profiler-filter-example`. + + .. versionadded:: 4.4.2 + + .. note:: + + When a profiling :ref:`filter + ` is set, the + :ref:`slowms ` and + :ref:`sampleRate + ` options do + not affect the diagnostic log or the profiler. + + Returns ~~~~~~~ @@ -156,7 +202,27 @@ the settings. .. code-block:: javascript - { "was" : 0, "slowms" : 100, "sampleRate" : 1, "ok" : 1 } + { + "was" : 2, + "slowms" : 100, + "sampleRate" : 1, + "filter" : { + "$and" : [ + { + "op" : { + "$eq" : "query" + } + }, + { + "millis" : { + "$gt" : 20000 + } + } + ] + }, + "note" : "When a filter expression is set, slowms and sampleRate are not used for profiling and slow-query log lines.", + "ok" : 1 + } .. tab:: Replica Set Member :tabid: repl-set @@ -167,6 +233,21 @@ the settings. "was" : 0, "slowms" : 100, "sampleRate" : 1, + "filter" : { + "$and" : [ + { + "op" : { + "$eq" : "query" + } + }, + { + "millis" : { + "$gte" : 2000 + } + } + ] + }, + "note" : "When a filter expression is set, slowms and sampleRate are not used for profiling and slow-query log lines.", "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1572991238, 1), @@ -187,6 +268,21 @@ the settings. "was" : 0, "slowms" : 100, "sampleRate" : 1, + "filter" : { + "$and" : [ + { + "op" : { + "$eq" : "query" + } + }, + { + "millis" : { + "$gte" : 2000 + } + } + ] + }, + "note" : "When a filter expression is set, slowms and sampleRate are not used for profiling and slow-query log lines.", "ok" : 1, "operationTime" : Timestamp(1572991499, 2), "$clusterTime" : { @@ -209,6 +305,20 @@ Where: - ``sampleRate`` is the **previous** :ref:`sampleRate ` setting. +- ``filter`` is the **previous** :ref:`filter + ` setting. + (*New in MongoDB 4.4.2*) + +- ``note`` is a string explaining the behavior of ``filter``. This field + only appears in the output when ``filter`` is also present. + (*New in MongoDB 4.4.2*) + +.. note:: + + The ``filter`` and ``note`` fields only appear in the output if + they were present in the previous :ref:`level + ` setting. + To view the current profiling level, see :method:`db.getProfilingStatus()`. Behavior @@ -263,3 +373,27 @@ The method returns a document with the **previous** values for the settings. To view the current profiling level, see :method:`db.getProfilingStatus()`. + +.. _profiler-filter-example: + +Set a Filter to Determine Profiled Operations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. versionadded:: 4.4.2 + +The following example sets for a :binary:`~bin.mongod` instance: + +- the :ref:`profiling level ` to ``2``, + +- a :ref:`filter ` of + ``{ op: "query", millis: { $gt: 2000 } }``, which causes the profiler + to only record ``query`` operations that took longer than 2 seconds. + +.. code-block:: javascript + + db.setProfilingLevel( 2, { filter: { op: "query", millis: { $gt: 2000 } } } ) + +The method returns a document with the **previous** values for the +settings. + +To view the current profiling level, see :method:`db.getProfilingStatus()`. diff --git a/source/tutorial/manage-the-database-profiler.txt b/source/tutorial/manage-the-database-profiler.txt index e60062eab7e..401753ffa6b 100644 --- a/source/tutorial/manage-the-database-profiler.txt +++ b/source/tutorial/manage-the-database-profiler.txt @@ -86,6 +86,22 @@ The ``"ok" : 1`` key-value pair indicates the operation succeeded: To verify the new setting, see the :ref:`database-profiling-view-status` section. +Global and Per-Database Profiling Settings +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The :ref:`slowms ` and +:ref:`sampleRate ` profiling +settings are *global*. When set, these settings affect all databases in +your process. + +When set via the :dbcommand:`profile` command or +:method:`db.setProfilingLevel()` shell helper method, :ref:`profiling +level ` and :ref:`filter +` settings are set at the *database* +level. When set as either command line or :ref:`configuration +file ` options, profiling level and ``filter`` +settings affect the entire process. + .. _database-profiling-specify-slowms-threshold: Specify the Threshold for Slow Operations @@ -196,6 +212,47 @@ sampling rate for logging slow operations: See :ref:`db-profiling-sharding`. +Set a Filter to Determine Profiled Operations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. versionadded:: 4.4.2 + +You can set a filter to control which operations are profiled and +logged. You can set the profiling filter in one of the following ways: + +- Set the value of ``filter`` using the :dbcommand:`profile` command + or :method:`db.setProfilingLevel()` shell helper method. + +- Set the value of :setting:`~operationProfiling.filter` in a + :ref:`configuration file `. + +For :binary:`~bin.mongod` instances, the ``filter`` affects both the +diagnostic log and, if enabled, the profiler. + +For :binary:`~bin.mongos` instances, the ``filter`` affects the +diagnostic log only and not the profiler since profiling is not +available on :binary:`~bin.mongos`. + +.. note:: + + When a profiling ``filter`` is set, the :ref:`slowms + ` and :ref:`sampleRate + ` options do not affect the + diagnostic log or the profiler. + +For example, the following :method:`db.setProfilingLevel()` method sets +for a :binary:`~bin.mongod` instance: + +- the :ref:`profiling level ` to ``2``, + +- the :ref:`filter ` of + ``{ op: "query", millis: { $gt: 2000 } }``, which causes the profiler + to only log ``query`` operations that took longer than 2 seconds. + +.. code-block:: javascript + + db.setProfilingLevel( 2, { filter: { op: "query", millis: { $gt: 2000 } } } ) + .. _database-profiling-view-status: .. _database-profiling-check-level: @@ -287,6 +344,7 @@ However, starting in MongoDB 4.0, you can set the :option:`--slowms --slowOpSampleRate>` on :binary:`~bin.mongos` to configure the diagnostic log for slow operations. + View Profiler Data ------------------ @@ -303,7 +361,6 @@ output data, see :doc:`/reference/database-profiler`. You can use :query:`$comment` to add data to the query predicate to make it easier to analyze data from the profiler. - .. _database-profiling-example-queries: Example Profiler Data Queries From 55543d93d2b771b45883ff1f103c26a6afbcfea1 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 30 Nov 2020 14:17:39 -0500 Subject: [PATCH 33/97] DOCSP-13402 add drop unique system index step to 4.2 downg instructions --- .../includes/extracts-4.2-downgrade-fcv.yaml | 19 +++++++++++++++++++ .../4.2-downgrade-replica-set.txt | 11 +++++++++-- .../4.2-downgrade-sharded-cluster.txt | 11 +++++++++-- .../4.2-downgrade-standalone.txt | 11 +++++++++-- 4 files changed, 46 insertions(+), 6 deletions(-) diff --git a/source/includes/extracts-4.2-downgrade-fcv.yaml b/source/includes/extracts-4.2-downgrade-fcv.yaml index fd65e64caa1..dc705384320 100644 --- a/source/includes/extracts-4.2-downgrade-fcv.yaml +++ b/source/includes/extracts-4.2-downgrade-fcv.yaml @@ -77,6 +77,25 @@ content: | }); }); --- +ref: 4.2-downgrade-fcv-system-unique-index +content: | + + In addition, if you have enabled :doc:`access control + `, you must also remove the system + unique index ``user_1_db_1`` on the ``admin.system.users`` + collection. + + If fCV has ever been set to ``"4.2"``, use the following command to + drop the ``user_1_db_1`` system unique index: + + .. code-block:: javascript + + db.getSiblingDB("admin").getCollection("system.users").dropIndex("user_1_db_1") + + The ``user_1_db_1`` index will automatically be rebuilt when starting + the server with the 4.0 binary in the procedure below. + +--- ref: 4.2-downgrade-fcv-unique-index-access-control-sharded-cluster content: | diff --git a/source/release-notes/4.2-downgrade-replica-set.txt b/source/release-notes/4.2-downgrade-replica-set.txt index d73351b882c..a28bbd89caf 100644 --- a/source/release-notes/4.2-downgrade-replica-set.txt +++ b/source/release-notes/4.2-downgrade-replica-set.txt @@ -137,7 +137,14 @@ Remove all persisted 4.2 features that are :ref:`incompatible with 4.0 Script .. include:: /includes/extracts/4.2-downgrade-fcv-unique-index-script.rst -2d. Remove Wildcard Indexes +2d. Remove ``user_1_db_1`` System Unique Index +`````````````````````````````````````````````` + +.. container:: + + .. include:: /includes/extracts/4.2-downgrade-fcv-system-unique-index.rst + +2e. Remove Wildcard Indexes ```````````````````````````` .. container:: @@ -145,7 +152,7 @@ Remove all persisted 4.2 features that are :ref:`incompatible with 4.0 .. include:: /includes/extracts/4.2-downgrade-fcv-wildcard-index.rst -2e. View Definitions/Collection Validation Definitions that Include 4.2 Operators +2f. View Definitions/Collection Validation Definitions that Include 4.2 Operators ````````````````````````````````````````````````````````````````````````````````` .. container:: diff --git a/source/release-notes/4.2-downgrade-sharded-cluster.txt b/source/release-notes/4.2-downgrade-sharded-cluster.txt index abaf6d5e56d..ad80b17abf5 100644 --- a/source/release-notes/4.2-downgrade-sharded-cluster.txt +++ b/source/release-notes/4.2-downgrade-sharded-cluster.txt @@ -130,14 +130,21 @@ Remove all persisted 4.2 features that are :ref:`incompatible with 4.0 Script to run on shards .. include:: /includes/extracts/4.2-downgrade-fcv-unique-index-script-local-users.rst -2d. Remove Wildcard Indexes +2d. Remove ``user_1_db_1`` System Unique Index +`````````````````````````````````````````````` + +.. container:: + + .. include:: /includes/extracts/4.2-downgrade-fcv-system-unique-index.rst + +2e. Remove Wildcard Indexes ``````````````````````````` .. container:: .. include:: /includes/extracts/4.2-downgrade-fcv-wildcard-index.rst -2e. View Definitions/Collection Validation Definitions that Include 4.2 Operators +2f. View Definitions/Collection Validation Definitions that Include 4.2 Operators ````````````````````````````````````````````````````````````````````````````````` .. container:: diff --git a/source/release-notes/4.2-downgrade-standalone.txt b/source/release-notes/4.2-downgrade-standalone.txt index 5b4abed116f..068ad2b453d 100644 --- a/source/release-notes/4.2-downgrade-standalone.txt +++ b/source/release-notes/4.2-downgrade-standalone.txt @@ -100,14 +100,21 @@ Remove all persisted 4.2 features that are :ref:`incompatible with 4.0 Script .. include:: /includes/extracts/4.2-downgrade-fcv-unique-index-script.rst -2d. Remove Wildcard Indexes +2d. Remove ``user_1_db_1`` System Unique Index +`````````````````````````````````````````````` + +.. container:: + + .. include:: /includes/extracts/4.2-downgrade-fcv-system-unique-index.rst + +2e. Remove Wildcard Indexes ``````````````````````````` .. container:: .. include:: /includes/extracts/4.2-downgrade-fcv-wildcard-index.rst -2e. View Definitions/Collection Validation Definitions that Include 4.2 Operators +2f. View Definitions/Collection Validation Definitions that Include 4.2 Operators ````````````````````````````````````````````````````````````````````````````````` .. container:: From 3a8a69c3589b399e57208a7933b4df0566f8d1a0 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Tue, 1 Dec 2020 10:11:32 -0500 Subject: [PATCH 34/97] DOCSP-13412 remove :samp: directive from manual --- source/reference/command/aggregate.txt | 2 +- source/reference/command/findAndModify.txt | 2 +- source/reference/command/insert.txt | 2 +- source/reference/command/listCollections.txt | 2 +- source/reference/command/update.txt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source/reference/command/aggregate.txt b/source/reference/command/aggregate.txt index a531846fc91..117d80e6df2 100644 --- a/source/reference/command/aggregate.txt +++ b/source/reference/command/aggregate.txt @@ -148,7 +148,7 @@ arguments: - Enables :samp:`aggregate` to bypass document validation + Enables :dbcommand:`aggregate` to bypass document validation during the operation. This lets you insert documents that do not meet the validation requirements. diff --git a/source/reference/command/findAndModify.txt b/source/reference/command/findAndModify.txt index 8fad4fdf55e..7bb9cb77080 100644 --- a/source/reference/command/findAndModify.txt +++ b/source/reference/command/findAndModify.txt @@ -159,7 +159,7 @@ Definition - boolean - - Optional. Enables :samp:`findAndModify` to bypass document validation + - Optional. Enables :dbcommand:`findAndModify` to bypass document validation during the operation. This lets you update documents that do not meet the validation requirements. diff --git a/source/reference/command/insert.txt b/source/reference/command/insert.txt index a6fd8c7da1e..f54750c7ed3 100644 --- a/source/reference/command/insert.txt +++ b/source/reference/command/insert.txt @@ -88,7 +88,7 @@ Definition - boolean - - Optional. Enables :samp:`insert` to bypass document validation + - Optional. Enables :dbcommand:`insert` to bypass document validation during the operation. This lets you insert documents that do not meet the validation requirements. diff --git a/source/reference/command/listCollections.txt b/source/reference/command/listCollections.txt index 0c33897087d..795600f78cb 100644 --- a/source/reference/command/listCollections.txt +++ b/source/reference/command/listCollections.txt @@ -49,7 +49,7 @@ Definition - Optional. A query expression to filter the list of collections. You can specify a query expression on any of the :ref:`fields - returned ` by :samp:`listCollections`. + returned ` by :dbcommand:`listCollections`. diff --git a/source/reference/command/update.txt b/source/reference/command/update.txt index f2ad9fefcde..688d57e4616 100644 --- a/source/reference/command/update.txt +++ b/source/reference/command/update.txt @@ -123,7 +123,7 @@ The command takes the following fields: - boolean - - Optional. Enables :samp:`update` to bypass document validation + - Optional. Enables :dbcommand:`update` to bypass document validation during the operation. This lets you update documents that do not meet the validation requirements. From 36318b740514765158a5a6f12ba2e7b1f3d109ae Mon Sep 17 00:00:00 2001 From: Jeff Allen Date: Tue, 1 Dec 2020 14:33:46 -0500 Subject: [PATCH 35/97] (DOCS-14025): Fix sort order for objects --- .../reference/bson-type-comparison-order.txt | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/source/reference/bson-type-comparison-order.txt b/source/reference/bson-type-comparison-order.txt index f9331831890..78c943906da 100644 --- a/source/reference/bson-type-comparison-order.txt +++ b/source/reference/bson-type-comparison-order.txt @@ -63,7 +63,25 @@ MongoDB's comparison of :term:`BSON` objects uses the following order: #. Recursively compare key-value pairs in the order that they appear within the BSON object. -#. Compare the :ref:`key field names `. +#. Compare the field types. MongoDB uses the following comparison + order for field types, from lowest to highest: + + a. MinKey (internal type) + #. Null + #. Numbers (ints, longs, doubles, decimals) + #. Symbol, String + #. Object + #. Array + #. BinData + #. ObjectId + #. Boolean + #. Date + #. Timestamp + #. Regular Expression + #. MaxKey (internal type) + +#. If the field types are equal, compare the + :ref:`key field names `. #. If the key field names are equal, compare the field values. From a96841fdd8fecd1f31fe2da21d024770294794ee Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Fri, 4 Dec 2020 11:07:55 -0500 Subject: [PATCH 36/97] DOCS-13983 platform support add AMZN Linux2 3.6 foreport --- source/administration/production-notes.txt | 2 +- source/includes/fact-check-amazon-linux-community.rst | 4 ++-- source/includes/fact-check-amazon-linux-enterprise.rst | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source/administration/production-notes.txt b/source/administration/production-notes.txt index 9c500c8cd4d..1758c8fac47 100644 --- a/source/administration/production-notes.txt +++ b/source/administration/production-notes.txt @@ -97,7 +97,7 @@ Recommended Platforms ~~~~~~~~~~~~~~~~~~~~~ While MongoDB supports a variety of platforms, the following operating -systems are recommended for production use: +systems are recommended for production use on ``x86_64`` architecture: - Amazon Linux 2 - Debian 9 and 10 diff --git a/source/includes/fact-check-amazon-linux-community.rst b/source/includes/fact-check-amazon-linux-community.rst index d72aad9a50f..21112f3c351 100644 --- a/source/includes/fact-check-amazon-linux-community.rst +++ b/source/includes/fact-check-amazon-linux-community.rst @@ -5,7 +5,7 @@ following command on the command-line: grep ^NAME /etc/*release -The result should be **Amazon Linux**. If using a different Linux -distribution, please see the +The result should be **Amazon Linux** or **Amazon Linux AMI**. If using +a different Linux distribution, please see the :doc:`install instructions for your platform `. diff --git a/source/includes/fact-check-amazon-linux-enterprise.rst b/source/includes/fact-check-amazon-linux-enterprise.rst index f254842c9cd..511f08c6a54 100644 --- a/source/includes/fact-check-amazon-linux-enterprise.rst +++ b/source/includes/fact-check-amazon-linux-enterprise.rst @@ -5,7 +5,7 @@ following command on the command-line: grep ^NAME /etc/*release -The result should be **Amazon Linux**. If using a different Linux -distribution, please see the +The result should be **Amazon Linux** or **Amazon Linux AMI**. If using +a different Linux distribution, please see the :doc:`install instructions for your platform `. From c7567f88df1f6ba193d2f9ed7c9ffbe034073fdf Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Fri, 4 Dec 2020 17:41:50 -0500 Subject: [PATCH 37/97] DOCS-9994,DOCSP-13487 document sort stability change in v4.4 --- source/includes/fact-sort-stability.rst | 11 +++ source/reference/command/findAndModify.txt | 8 +- source/reference/method/cursor.sort.txt | 71 +++++++++++++++-- .../method/db.collection.findAndModify.txt | 14 +++- .../reference/operator/aggregation/limit.txt | 30 ++++++++ .../reference/operator/aggregation/skip.txt | 30 ++++++++ .../reference/operator/aggregation/sort.txt | 77 +++++++++++++++++++ source/release-notes/4.4-compatibility.txt | 18 +++++ source/release-notes/4.4.txt | 21 +++++ 9 files changed, 270 insertions(+), 10 deletions(-) create mode 100644 source/includes/fact-sort-stability.rst diff --git a/source/includes/fact-sort-stability.rst b/source/includes/fact-sort-stability.rst new file mode 100644 index 00000000000..67d5a9742da --- /dev/null +++ b/source/includes/fact-sort-stability.rst @@ -0,0 +1,11 @@ +In MongoDB, sorts are inherently stable, unless sorting on a field which +contains duplicate values: + +- a *stable sort* is one that returns the same sort order each time it + is performed +- an *unstable sort* is one that may return a different sort order + when performed multiple times + +If a stable sort is desired, include at least one field in your sort +that contains exclusively unique values. The easiest way to guarantee +this is to include the ``_id`` field in your sort query. diff --git a/source/reference/command/findAndModify.txt b/source/reference/command/findAndModify.txt index 7bb9cb77080..d44a01cfe1b 100644 --- a/source/reference/command/findAndModify.txt +++ b/source/reference/command/findAndModify.txt @@ -78,7 +78,9 @@ Definition - * - ``sort`` + * - .. _findandmodify-command-stable-sorting: + + ``sort`` - document @@ -88,6 +90,10 @@ Definition Starting in MongoDB 4.2 (and 4.0.12+, 3.6.14+, and 3.4.23+), the operation errors if the sort argument is not a document. + + .. include:: /includes/fact-sort-stability.rst + + See :ref:`sort-cursor-stable-sorting` for more information. diff --git a/source/reference/method/cursor.sort.txt b/source/reference/method/cursor.sort.txt index 50ea3283daf..175ffb5c138 100644 --- a/source/reference/method/cursor.sort.txt +++ b/source/reference/method/cursor.sort.txt @@ -60,12 +60,73 @@ Definition Behaviors --------- -Result Ordering -~~~~~~~~~~~~~~~ +.. _sort-cursor-stable-sorting: -Unless you specify the :method:`~cursor.sort()` method or use the -:query:`$near` operator, MongoDB does **not** guarantee the order of -query results. +Sort Stability +~~~~~~~~~~~~~~ + +.. versionchanged:: 4.4 + +.. include:: /includes/fact-sort-stability.rst + +Consider the following ``restaurant`` collection: + +.. code-block:: js + + db.restaurants.insertMany( [ + { "_id" : 1, "name" : "Central Park Cafe", "borough" : "Manhattan"}, + { "_id" : 2, "name" : "Rock A Feller Bar and Grill", "borough" : "Queens"}, + { "_id" : 3, "name" : "Empire State Pub", "borough" : "Brooklyn"}, + { "_id" : 4, "name" : "Stan's Pizzaria", "borough" : "Manhattan"}, + { "_id" : 5, "name" : "Jane's Deli", "borough" : "Brooklyn"}, + ] ); + +The following command uses the :method:`~cursor.sort()` method to sort +on the ``borough`` field: + +.. code-block:: js + + db.restaurants.find().sort( { "borough": 1 } ) + +In this example, the sort is *unstable*, since the ``borough`` field +contains duplicate values for both ``Manhattan`` and ``Brooklyn``. +Documents are returned in alphabetical order by ``borough``, but the +order of those documents with duplicate values for ``borough`` might not +the be the same across multiple executions of the same sort. For +example, here are the results from two different executions of the +above command: + +.. code-block:: js + :copyable: false + + { "_id" : 3, "name" : "Empire State Pub", "borough" : "Brooklyn" } + { "_id" : 5, "name" : "Jane's Deli", "borough" : "Brooklyn" } + { "_id" : 1, "name" : "Central Park Cafe", "borough" : "Manhattan" } + { "_id" : 4, "name" : "Stan's Pizzaria", "borough" : "Manhattan" } + { "_id" : 2, "name" : "Rock A Feller Bar and Grill", "borough" : "Queens" } + + { "_id" : 5, "name" : "Jane's Deli", "borough" : "Brooklyn" } + { "_id" : 3, "name" : "Empire State Pub", "borough" : "Brooklyn" } + { "_id" : 4, "name" : "Stan's Pizzaria", "borough" : "Manhattan" } + { "_id" : 1, "name" : "Central Park Cafe", "borough" : "Manhattan" } + { "_id" : 2, "name" : "Rock A Feller Bar and Grill", "borough" : "Queens" } + +While the values for ``borough`` are still sorted in alphabetical order, +the order of the documents containing duplicate values for ``borough`` +(i.e. ``Manhattan`` and ``Brooklyn``) is not the same. + +To achieve a *stable sort*, add a field which contains exclusively +unique values to the sort. The following command uses the +:method:`~cursor.sort()` method to sort on both the ``borough`` field +and the ``_id`` field: + +.. code-block:: js + + db.restaurants.find().sort( { "borough": 1, "_id": 1 } ) + +Since the ``_id`` field is always guaranteed to contain exclusively +unique values, the returned sort order will always be the same across +multiple executions of the same sort. .. _sort-asc-desc: diff --git a/source/reference/method/db.collection.findAndModify.txt b/source/reference/method/db.collection.findAndModify.txt index e1c394b587f..dda676f3656 100644 --- a/source/reference/method/db.collection.findAndModify.txt +++ b/source/reference/method/db.collection.findAndModify.txt @@ -86,7 +86,9 @@ Definition - * - ``sort`` + * - .. _findandmodify-method-stable-sorting: + + ``sort`` - document @@ -96,9 +98,13 @@ Definition Starting in MongoDB 4.2 (and 4.0.12+, 3.6.14+, and 3.4.23+), the operation errors if the sort argument is not a document. - - - + + .. include:: /includes/fact-sort-stability.rst + + See :ref:`sort-cursor-stable-sorting` for more information. + + + * - ``remove`` - boolean diff --git a/source/reference/operator/aggregation/limit.txt b/source/reference/operator/aggregation/limit.txt index b55ccc26bfc..af90d3ceb83 100644 --- a/source/reference/operator/aggregation/limit.txt +++ b/source/reference/operator/aggregation/limit.txt @@ -27,6 +27,36 @@ Definition :pipeline:`$limit` takes a positive integer that specifies the maximum number of documents to pass along. +Behavior +-------- + +Using $limit with Sorted Results +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If using the :pipeline:`$limit` stage with any of: + +- the :pipeline:`$sort` aggregation stage, +- the :method:`~cursor.sort()` method, or +- the ``sort`` field to the :dbcommand:`findAndModify` command or the + :method:`~db.collection.findAndModify()` shell method. + +be sure that you are performing a *stable sort* before passing results +to the :pipeline:`$limit` stage. A stable sort ensures that the sort +order of returned documents remains the same across multiple executions +of the same sort; especially important when used with the +:pipeline:`$limit` stage. + +See the following for more information on each: + +- :ref:`Stable sorting with $sort (aggregation) + ` +- :ref:`Stable sorting with the sort() method + ` +- :ref:`Stable sorting with the findAndModify command + ` +- :ref:`Stable sorting with the findAndModify() method + ` + Example ------- diff --git a/source/reference/operator/aggregation/skip.txt b/source/reference/operator/aggregation/skip.txt index 3f1b73e9336..1edc97b9a33 100644 --- a/source/reference/operator/aggregation/skip.txt +++ b/source/reference/operator/aggregation/skip.txt @@ -28,6 +28,36 @@ Definition :pipeline:`$skip` takes a positive integer that specifies the maximum number of documents to skip. +Behavior +-------- + +Using $skip with Sorted Results +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If using the :pipeline:`$skip` stage with any of: + +- the :pipeline:`$sort` aggregation stage, +- the :method:`~cursor.sort()` method, or +- the ``sort`` field to the :dbcommand:`findAndModify` command or the + :method:`~db.collection.findAndModify()` shell method. + +be sure that you are performing a *stable sort* before passing results +to the :pipeline:`$skip` stage. A stable sort ensures that the sort +order of returned documents remains the same across multiple executions +of the same sort; especially important when used with the +:pipeline:`$skip` stage. + +See the following for more information on each: + +- :ref:`Stable sorting with $sort (aggregation) + ` +- :ref:`Stable sorting with the sort() method + ` +- :ref:`Stable sorting with the findAndModify command + ` +- :ref:`Stable sorting with the findAndModify() method + ` + Example ------- diff --git a/source/reference/operator/aggregation/sort.txt b/source/reference/operator/aggregation/sort.txt index cccb9489171..d0bc5567935 100644 --- a/source/reference/operator/aggregation/sort.txt +++ b/source/reference/operator/aggregation/sort.txt @@ -52,6 +52,83 @@ Definition ````. Then documents with the same ```` values are further sorted by ````. +Behavior +-------- + +.. _sort-aggregation-stable-sorting: + +Sort Stability +~~~~~~~~~~~~~~ + +.. include:: /includes/fact-sort-stability.rst + +Consider the following ``restaurant`` collection: + +.. code-block:: js + + db.restaurants.insertMany( [ + { "_id" : 1, "name" : "Central Park Cafe", "borough" : "Manhattan"}, + { "_id" : 2, "name" : "Rock A Feller Bar and Grill", "borough" : "Queens"}, + { "_id" : 3, "name" : "Empire State Pub", "borough" : "Brooklyn"}, + { "_id" : 4, "name" : "Stan's Pizzaria", "borough" : "Manhattan"}, + { "_id" : 5, "name" : "Jane's Deli", "borough" : "Brooklyn"}, + ] ); + +The following command uses the :pipeline:`$sort` stage to sort on +the ``borough`` field: + +.. code-block:: js + + db.restaurants.aggregate( + [ + { $sort : { borough : 1 } } + ] + ) + +In this example, the sort is *unstable*, since the ``borough`` field +contains duplicate values for both ``Manhattan`` and ``Brooklyn``. +Documents are returned in alphabetical order by ``borough``, but the +order of those documents with duplicate values for ``borough`` might not +the be the same across multiple executions of the same sort. For +example, here are the results from two different executions of the +above command: + +.. code-block:: js + :copyable: false + + { "_id" : 3, "name" : "Empire State Pub", "borough" : "Brooklyn" } + { "_id" : 5, "name" : "Jane's Deli", "borough" : "Brooklyn" } + { "_id" : 1, "name" : "Central Park Cafe", "borough" : "Manhattan" } + { "_id" : 4, "name" : "Stan's Pizzaria", "borough" : "Manhattan" } + { "_id" : 2, "name" : "Rock A Feller Bar and Grill", "borough" : "Queens" } + + { "_id" : 5, "name" : "Jane's Deli", "borough" : "Brooklyn" } + { "_id" : 3, "name" : "Empire State Pub", "borough" : "Brooklyn" } + { "_id" : 4, "name" : "Stan's Pizzaria", "borough" : "Manhattan" } + { "_id" : 1, "name" : "Central Park Cafe", "borough" : "Manhattan" } + { "_id" : 2, "name" : "Rock A Feller Bar and Grill", "borough" : "Queens" } + +While the values for ``borough`` are still sorted in alphabetical order, +the order of the documents containing duplicate values for ``borough`` +(i.e. ``Manhattan`` and ``Brooklyn``) is not the same. + +To achieve a *stable sort*, add a field which contains exclusively +unique values to the sort. The following command uses the +:pipeline:`$sort` stage to sort on both the ``borough`` field and the +``_id`` field: + +.. code-block:: js + + db.restaurants.aggregate( + [ + { $sort : { borough : 1, _id: 1 } } + ] + ) + +Since the ``_id`` field is always guaranteed to contain exclusively +unique values, the returned sort order will always be the same across +multiple executions of the same sort. + Examples -------- diff --git a/source/release-notes/4.4-compatibility.txt b/source/release-notes/4.4-compatibility.txt index 567a2ca23d9..2dc58418d54 100644 --- a/source/release-notes/4.4-compatibility.txt +++ b/source/release-notes/4.4-compatibility.txt @@ -182,6 +182,24 @@ Text Search Metadata { $meta: "textScore" } Query Requirement .. include:: /includes/extracts/4.4-changes-textscore-predicate.rst +``$sort`` Stability Changes +--------------------------- + +Starting in MongoDB 4.4, the :method:`~cursor.sort()` method now uses +the same sort algorithm as the :pipeline:`$sort` aggregation stage. With +this change, queries which perform a :method:`~cursor.sort()` on +fields that contain duplicate values are much more likely to result in +inconsistent sort orders for those values. + +To guarantee sort stability when using :method:`~cursor.sort()` on +duplicate values, include an additional field in your sort that contains +exclusively unique values. + +This can be accomplished easily by adding the ``_id`` field to your +sort. + +See :ref:`sort-cursor-stable-sorting` for more information. + Map Reduce Changes ------------------ diff --git a/source/release-notes/4.4.txt b/source/release-notes/4.4.txt index 6544fe56e70..850b5551f83 100644 --- a/source/release-notes/4.4.txt +++ b/source/release-notes/4.4.txt @@ -975,6 +975,27 @@ Transactions - :doc:`/core/transactions` - :ref:`transactions-operations-ref` +Sorting +------- + +``$sort`` Stability Changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Starting in MongoDB 4.4, the :method:`~cursor.sort()` method now uses +the same sort algorithm as the :pipeline:`$sort` aggregation stage. With +this change, queries which perform a :method:`~cursor.sort()` on +fields that contain duplicate values are much more likely to result in +inconsistent sort orders for those values. + +To guarantee sort stability when using :method:`~cursor.sort()` on +duplicate values, include an additional field in your sort that contains +exclusively unique values. + +This can be accomplished easily by adding the ``_id`` field to your +sort. + +See :ref:`sort-cursor-stable-sorting` for more information. + Security Improvements --------------------- From 409ff41b838c55c251f3c0456f4eb2b8ea237bd8 Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Thu, 3 Dec 2020 15:15:48 -0500 Subject: [PATCH 38/97] DOCSP-11905 updates ObjectId entry in reference glossary --- source/reference/glossary.txt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/source/reference/glossary.txt b/source/reference/glossary.txt index 24732f449a5..ffcc5c5ec58 100644 --- a/source/reference/glossary.txt +++ b/source/reference/glossary.txt @@ -581,11 +581,13 @@ Glossary See :term:`natural order`. ObjectId - A special 12-byte :term:`BSON` type that guarantees uniqueness - within the :term:`collection`. The ObjectId is generated based on - timestamp, machine ID, process ID, and a process-local incremental - counter. MongoDB uses ObjectId values as the default values for - :term:`_id` fields. + A special :term:`BSON` type that guarantees uniqueness within the + :term:`collection`. :ref:`objectid` values are 12 bytes in length, + consisting of: + + .. include:: /includes/fact-ObjectId-construct.rst + + See :ref:`document-bson-type-object-id` for BSON-specific information. operator A keyword beginning with a ``$`` used to express an update, From e41f0672216728d3c97a955ad8200f77767bb918 Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Fri, 20 Nov 2020 15:03:02 -0600 Subject: [PATCH 39/97] DOCS-13885 add sampleRate match operator --- source/includes/extracts-agg-stages.yaml | 7 ++ .../operator/aggregation-pipeline.txt | 11 +- .../operator/aggregation/sampleRate.txt | 104 ++++++++++++++++++ 3 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 source/reference/operator/aggregation/sampleRate.txt diff --git a/source/includes/extracts-agg-stages.yaml b/source/includes/extracts-agg-stages.yaml index 1d3fc610205..ecd3ce61ac5 100644 --- a/source/includes/extracts-agg-stages.yaml +++ b/source/includes/extracts-agg-stages.yaml @@ -165,6 +165,13 @@ content: | - Randomly selects the specified number of documents from its input. + * - :pipeline:`$sampleRate` + + - Randomly select documents at a given rate. Although the exact + number of documents selected varies on each run, the quantity + chosen approximates the sample rate expressed as a percentage + of the total number of documents. + * - :pipeline:`$set` - Adds new fields to documents. Similar to diff --git a/source/reference/operator/aggregation-pipeline.txt b/source/reference/operator/aggregation-pipeline.txt index 0015f9e681a..d737cb143ce 100644 --- a/source/reference/operator/aggregation-pipeline.txt +++ b/source/reference/operator/aggregation-pipeline.txt @@ -240,7 +240,15 @@ Alphabetical Listing of Stages * - :pipeline:`$sample` - Randomly selects the specified number of documents from its input. - + + + * - :pipeline:`$sampleRate` + + - Randomly select documents at a given rate. Although the exact + number of documents selected varies on each run, the quantity + chosen approximates the sample rate expressed as a percentage + of the total number of documents. + * - :pipeline:`$set` @@ -326,6 +334,7 @@ Alphabetical Listing of Stages /reference/operator/aggregation/replaceRoot /reference/operator/aggregation/replaceWith /reference/operator/aggregation/sample + /reference/operator/aggregation/sampleRate /reference/operator/aggregation/set /reference/operator/aggregation/skip /reference/operator/aggregation/sort diff --git a/source/reference/operator/aggregation/sampleRate.txt b/source/reference/operator/aggregation/sampleRate.txt new file mode 100644 index 00000000000..1b87ca88c2d --- /dev/null +++ b/source/reference/operator/aggregation/sampleRate.txt @@ -0,0 +1,104 @@ +========================= +$sampleRate (aggregation) +========================= + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +Definition +---------- + +.. pipeline:: $sampleRate + + .. versionadded:: 4.4.2 + + Matches a random selection of input documents. The number of + documents selected approximates the sample rate expressed as a + percentage of the total number of documents. + + The :pipeline:`$sampleRate` operator has the following syntax: + + .. code-block:: javascript + + { $sampleRate: } + +Behavior +-------- + +The selection process uses a uniform random distribution. The sample +rate is a floating point number between 0 and 1, inclusive, which +represents the probability that a given document will be selected as it +passes through the pipeline. + +For example, a sample rate of ``0.33`` selects roughly one document in +three. + +This expression: + +.. code-block:: javascript + + { $match: { $sampleRate: 0.33 } } + +is equivalent to using the :expression:`$rand` operator as follows: + +.. code-block:: javascript + + { $match: { $expr: { $lt: [ { $rand: {} }, 0.33 ] } } } + +Repeated runs on the same data will produce different outcomes since +the selection process is non-deterministic. In general, smaller +datasets will show more variability in the number of documents +selected on each run. As collection size increases, the number of +documents chosen will approach the expected value for a uniform random +distribution. + +.. note:: + + If an exact number of documents is required from each run, the + :pipeline:`$sample` operator should be used instead of ``$sampleRate``. + +Examples +-------- + +This code creates a small collection with 100 documents. + +.. code-block:: javascript + + N = 100 + bulk = db.collection.initializeUnorderedBulkOp() + for ( i = 0; i < N; i++) { bulk.insert( {_id: i, r: 0} ) } + bulk.execute() + +The ``$sampleRate`` operator can be used in a pipeline to select random +documents from the collection. In this example we use ``$sampleRate`` +to select about one third of the documents. + +.. code-block:: javascript + + db.collection.aggregate( + [ + { $match: { $sampleRate: 0.33 } }, + { $count: "numMatches" } + ] + ) + +This is the output from 5 runs on the sample collection: + +.. code-block:: javascript + :copyable: false + + { "numMatches" : 38 } + { "numMatches" : 36 } + { "numMatches" : 29 } + { "numMatches" : 29 } + { "numMatches" : 28 } + +.. seealso:: + + :pipeline:`$sample`, :query:`$rand`. + From d1c98d50142d43d4a1c50b354525de107bc6f66c Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Wed, 2 Dec 2020 17:13:19 -0500 Subject: [PATCH 40/97] DOCSP-13192 provide greater detail on the round-to-even method --- .../reference/operator/aggregation/round.txt | 79 +++++++++++++------ 1 file changed, 55 insertions(+), 24 deletions(-) diff --git a/source/reference/operator/aggregation/round.txt b/source/reference/operator/aggregation/round.txt index fc089b4f624..5307782e2d1 100644 --- a/source/reference/operator/aggregation/round.txt +++ b/source/reference/operator/aggregation/round.txt @@ -90,33 +90,64 @@ Definition Behavior -------- -Rounding to Even Values -~~~~~~~~~~~~~~~~~~~~~~~ +Rounding Numbers Ending in 5 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -When rounding on a value of ``5``, :expression:`$round` rounds to the -nearest even value. For example, consider the following sample -documents: +To minimize the skew errors that are caused by always rounding upwards, +numbers ending in 5 are rounded to the nearest even value. This is the +`IEEE standard `__ +for floating point numbers and also works well operations across +sequences. -.. code-block:: javascript +For example, consider this chart: - {_id : 1, "value" : 10.5}, - {_id : 2, "value" : 11.5}, - {_id : 3, "value" : 12.5}, - {_id : 4, "value" : 13.5} - -:expression:`$round : [ "$value", 0] <$round>` returns the following: - -.. code-block:: javascript - - {_id : 1, "value" : 10}, - {_id : 2, "value" : 12}, - {_id : 3, "value" : 12}, - {_id : 4, "value" : 14} - -The value ``10.5`` is closest to the even value ``10``, while the values -``11.5`` and ``12.5`` are closest to the even value ``12``. Rounding to -the nearest even value supports more even distribution of rounded data -than always rounding up or down. +.. list-table:: + :header-rows: 1 + :widths: 25 25 25 25 + + * - Original + - Rounded 1 + - Rounded 0 + - Rounded -1 + + * - 124.5 + - 124.5 + - 124 + - 120 + + * - 125.5 + - 125.5 + - 126 + - 130 + + * - 25 + - 25 + - 25 + - 20 + + * - 12.5 + - 12.5 + - 12 + - 10 + + * - 2.25 + - 2.2 + - 2 + - 0 + + * - 2.45 + - 2.5 + - 2 + - 0 + +The chart highlights a few points. + +- The ``$round`` function is not limited to floats. (``25`` becomes ``20``). +- Rounded numbers can still end in 5 (``2.45`` becomes ``2.5``) +- The rounded value is determined by more than one digit + +For further discussion of the 'Round Half to Even' technique, see +`this article `__. Returned Data Type ~~~~~~~~~~~~~~~~~~ From 9052494648667004843b8a03d5a1c7b02c8e627a Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Wed, 9 Dec 2020 10:59:54 -0500 Subject: [PATCH 41/97] Revert "DOCSP-9411 add warning re dropped indexes during replication" This reverts commit 058fe9f5d32a8e886afdb8a073e5b665a32728d8. --- source/core/index-creation.txt | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/source/core/index-creation.txt b/source/core/index-creation.txt index 24810de0576..9b8a7da77d6 100644 --- a/source/core/index-creation.txt +++ b/source/core/index-creation.txt @@ -190,21 +190,6 @@ The build process is summarized as follows: For sharded clusters, the index build occurs only on shards containing data for the collection being indexed. -.. warning:: - - Avoid dropping any index on a collection while an index is being - replicated on the secondaries. - - If you attempt to drop an index from a collection on a :term:`primary` - node while the collection has a background index building on the - :term:`secondary` nodes, the two indexing operations will conflict - with each other. - - As a result, reads will be halted across all namespaces and - replication will halt until the background index build completes. - When the build finishes the dropIndex action will execute, then - reads and replication will resume. - For a more detailed description of the index build process, see :ref:`index-build-process`. From f9be5a81f0ebd740085232e51e62df30ccb1a98b Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 9 Dec 2020 11:49:23 -0500 Subject: [PATCH 42/97] DOCSP-13571 add missing default for systemLog params --- source/reference/configuration-options.txt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/source/reference/configuration-options.txt b/source/reference/configuration-options.txt index 87538bad4fe..b15932dae8c 100644 --- a/source/reference/configuration-options.txt +++ b/source/reference/configuration-options.txt @@ -224,19 +224,24 @@ Core Options *Type*: boolean - Run :binary:`~bin.mongos` or :binary:`~bin.mongod` in a quiet mode that attempts to limit the amount - of output. + *Default*: false + + Run :binary:`~bin.mongos` or :binary:`~bin.mongod` in a quiet mode + that attempts to limit the amount of output. - :setting:`systemLog.quiet` is **not** recommended for production systems as it may make - tracking problems during particular connections much more difficult. + :setting:`systemLog.quiet` is **not** recommended for production + systems as it may make tracking problems during particular + connections much more difficult. .. setting:: systemLog.traceAllExceptions *Type*: boolean - Print verbose information for debugging. Use for additional logging for - support-related troubleshooting. + *Default*: false + + Print verbose information for debugging. Use for additional logging + for support-related troubleshooting. From e24baabc3ddb18172117a72258076087bf8caa5a Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Tue, 8 Dec 2020 11:20:09 -0500 Subject: [PATCH 43/97] DOCSP-13116 oplog space reclamation might require restart --- source/tutorial/change-oplog-size.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/tutorial/change-oplog-size.txt b/source/tutorial/change-oplog-size.txt index 3eaf32db930..db238886170 100644 --- a/source/tutorial/change-oplog-size.txt +++ b/source/tutorial/change-oplog-size.txt @@ -119,7 +119,13 @@ The following operation runs the ``compact`` command against the .. code-block:: javascript use local - db.runCommand({ "compact" : "oplog.rs" } ) + db.runCommand({ "compact" : "oplog.rs" }) + +If the disk space allocated to the original oplog size is not +reclaimed, restart :binary:`~bin.mongod` and run the above commands +again. Restarting :binary:`~bin.mongod` runs recalculations in +:doc:`WiredTiger ` that might allow ``compact`` to +release more space to the OS. For clusters enforcing :ref:`authentication `, authenticate as a user with the :authaction:`compact` privilege From 736667b4e798e9d3ef78fc398825a8f29ff7e877 Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Tue, 8 Dec 2020 11:20:09 -0500 Subject: [PATCH 44/97] DOCSP-13116 oplog space reclamation might require restart --- source/tutorial/change-oplog-size.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/tutorial/change-oplog-size.txt b/source/tutorial/change-oplog-size.txt index db238886170..dd3f0400e15 100644 --- a/source/tutorial/change-oplog-size.txt +++ b/source/tutorial/change-oplog-size.txt @@ -122,8 +122,8 @@ The following operation runs the ``compact`` command against the db.runCommand({ "compact" : "oplog.rs" }) If the disk space allocated to the original oplog size is not -reclaimed, restart :binary:`~bin.mongod` and run the above commands -again. Restarting :binary:`~bin.mongod` runs recalculations in +reclaimed, restart :binary:`~bin.mongod` and run the commands from step +D again. Restarting :binary:`~bin.mongod` runs recalculations in :doc:`WiredTiger ` that might allow ``compact`` to release more space to the OS. From f5fd62e823bfb7d4720953602bf356cef517485d Mon Sep 17 00:00:00 2001 From: Asya Kamsky Date: Fri, 4 Dec 2020 13:58:59 -0500 Subject: [PATCH 45/97] remove reference to natural Natural sort order is unstable so shouldn't be used in an example --- source/reference/method/cursor.skip.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/reference/method/cursor.skip.txt b/source/reference/method/cursor.skip.txt index 362f4e9cf88..de5f79a79e3 100644 --- a/source/reference/method/cursor.skip.txt +++ b/source/reference/method/cursor.skip.txt @@ -58,13 +58,14 @@ Using :method:`cursor.skip()` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following JavaScript function uses :method:`cursor.skip()` to -paginate a collection in :term:`natural order`: +paginate a collection in ``_id``: .. code-block:: javascript function printStudents(pageNumber, nPerPage) { print( "Page: " + pageNumber ); db.students.find() + .sort( { _id: -1 } ) .skip( pageNumber > 0 ? ( ( pageNumber - 1 ) * nPerPage ) : 0 ) .limit( nPerPage ) .forEach( student => { From ef5255fb92dec9c022551a83e1939e6c41602c6f Mon Sep 17 00:00:00 2001 From: Asya Kamsky Date: Tue, 8 Dec 2020 14:18:48 -0500 Subject: [PATCH 46/97] Update cursor.skip.txt --- source/reference/method/cursor.skip.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/reference/method/cursor.skip.txt b/source/reference/method/cursor.skip.txt index de5f79a79e3..11d1dd19ae8 100644 --- a/source/reference/method/cursor.skip.txt +++ b/source/reference/method/cursor.skip.txt @@ -58,7 +58,7 @@ Using :method:`cursor.skip()` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following JavaScript function uses :method:`cursor.skip()` to -paginate a collection in ``_id``: +paginate a collection in ``_id`` order: .. code-block:: javascript From 043afcab5f728a53f805d4d7af6ad98794c726a3 Mon Sep 17 00:00:00 2001 From: Asya Kamsky Date: Tue, 8 Dec 2020 14:19:37 -0500 Subject: [PATCH 47/97] Update cursor.skip.txt --- source/reference/method/cursor.skip.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/reference/method/cursor.skip.txt b/source/reference/method/cursor.skip.txt index 11d1dd19ae8..02c05c81cc9 100644 --- a/source/reference/method/cursor.skip.txt +++ b/source/reference/method/cursor.skip.txt @@ -65,7 +65,7 @@ paginate a collection in ``_id`` order: function printStudents(pageNumber, nPerPage) { print( "Page: " + pageNumber ); db.students.find() - .sort( { _id: -1 } ) + .sort( { _id: 1 } ) .skip( pageNumber > 0 ? ( ( pageNumber - 1 ) * nPerPage ) : 0 ) .limit( nPerPage ) .forEach( student => { From 5e75d59541afe0248ebd5675f15a85e5b5f876c6 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 7 Dec 2020 14:45:28 -0500 Subject: [PATCH 48/97] DOCSP-13532 extend DOCS-9994 to cursor.limit() and cursor.skip() --- source/reference/method/cursor.limit.txt | 15 +++++++++- source/reference/method/cursor.skip.txt | 38 ++++++++++++++++-------- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/source/reference/method/cursor.limit.txt b/source/reference/method/cursor.limit.txt index 956592d9430..643d9040d8c 100644 --- a/source/reference/method/cursor.limit.txt +++ b/source/reference/method/cursor.limit.txt @@ -31,7 +31,7 @@ Definition Use :method:`~cursor.limit()` to maximize performance and prevent MongoDB from returning more results than required for processing. - The :method:`cursor.limit()` method has the following prototype form: + The :method:`~cursor.limit()` method has the following prototype form: .. code-block:: javascript @@ -64,3 +64,16 @@ into a single batch, the number of documents received will be less than the specified limit. By passing a negative limit, the client indicates to the server that it will not ask for a subsequent batch via ``getMore``. + +Using ``limit()`` with ``sort()`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If using :method:`~cursor.limit()` with :method:`~cursor.sort()`, be +sure that you are performing a *stable sort* before passing +results to :method:`~cursor.limit()`. A stable sort ensures that the +sort order of returned documents remains the same across multiple +executions of the same sort; especially important when used with the +:method:`~cursor.limit()` method. + +See :ref:`Stable sorting with the sort() method +` for more information. diff --git a/source/reference/method/cursor.skip.txt b/source/reference/method/cursor.skip.txt index 02c05c81cc9..66d0540ce15 100644 --- a/source/reference/method/cursor.skip.txt +++ b/source/reference/method/cursor.skip.txt @@ -19,16 +19,16 @@ Definition .. include:: /includes/fact-mongo-shell-method.rst - Call the :method:`cursor.skip()` method on a cursor to control where + Call the :method:`~cursor.skip()` method on a cursor to control where MongoDB begins returning results. This approach may be useful in implementing paginated results. .. note:: - You must apply :method:`cursor.skip()` to the cursor before + You must apply :method:`~cursor.skip()` to the cursor before retrieving any documents from the database. - The :method:`cursor.skip()` method has the following parameter: + The :method:`~cursor.skip()` method has the following parameter: .. list-table:: @@ -47,18 +47,30 @@ Definition - The number of documents to skip in the results set. - - +Behavior +-------- + +Using ``skip()`` with ``sort()`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If using :method:`~cursor.skip()` with :method:`~cursor.sort()`, +be sure that you are performing a *stable sort* before passing +results to :method:`~cursor.skip()`. A stable sort ensures that the sort +order of returned documents remains the same across multiple executions +of the same sort; especially important when used with the +:method:`~cursor.skip()` method. +See :ref:`Stable sorting with the sort() method +` for more information. Pagination Example ------------------ -Using :method:`cursor.skip()` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Using ``skip()`` +~~~~~~~~~~~~~~~~ -The following JavaScript function uses :method:`cursor.skip()` to -paginate a collection in ``_id`` order: +The following JavaScript function uses :method:`~cursor.skip()` to +paginate a collection by its ``_id`` field: .. code-block:: javascript @@ -73,16 +85,16 @@ paginate a collection in ``_id`` order: } ); } -The :method:`cursor.skip()` method requires the server to scan from the +The :method:`~cursor.skip()` method requires the server to scan from the beginning of the input results set before beginning to return results. -As the offset increases, :method:`cursor.skip()` will become slower. +As the offset increases, :method:`~cursor.skip()` will become slower. Using Range Queries ~~~~~~~~~~~~~~~~~~~ Range queries can use :ref:`indexes ` to avoid scanning unwanted documents, typically yielding better performance as the offset -grows compared to using :method:`cursor.skip()` for pagination. +grows compared to using :method:`~cursor.skip()` for pagination. Descending Order ```````````````` @@ -93,7 +105,7 @@ Use this procedure to implement pagination with range queries: direction over time and has a :ref:`unique index ` to prevent duplicate values, * Query for documents whose field is less than the start value - using the :query:`$lt` and :method:`cursor.sort()` operators, and + using the :query:`$lt` and :method:`~cursor.sort()` operators, and * Store the last-seen field value for the next query. For example, the following function uses the above procedure to print From caba839384ded668b69b7fca8320e6b17f831693 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 14 Dec 2020 14:29:50 -0500 Subject: [PATCH 49/97] DOCSP-13615 fix balancing shard by country example --- ...ng-segmenting-data-by-location-update.yaml | 29 ++++++++++++------- ...-sharding-segmenting-data-by-location.yaml | 15 ++++++---- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/source/includes/steps-sharding-segmenting-data-by-location-update.yaml b/source/includes/steps-sharding-segmenting-data-by-location-update.yaml index 85e27fcb2e7..f2a9e0ef169 100644 --- a/source/includes/steps-sharding-segmenting-data-by-location-update.yaml +++ b/source/includes/steps-sharding-segmenting-data-by-location-update.yaml @@ -131,17 +131,24 @@ pre: | :ref:`migrates ` chunks across the shards respecting the configured zones. - Before balancing, the shards in the ``EU`` zone only contained documents - where ``country : DE`` or ``country : UK``. Documents with the ``country : - MX`` could be stored on any shard in the sharded cluster. + Before balancing: + + - shards in the ``EU`` zone only contain documents where + ``country : DE`` or ``country : UK``, and + - documents where ``country : MX`` could be stored on any shard in + the sharded cluster. - After balancing, the shards in the ``EU`` zone should only contain documents - where ``country : DE``, while shards in the ``UK`` zone should only contain - documents where ``country : UK``. Additionally, shards in the ``NA`` zone - should only contain documents where ``country : US`` or ``country : MX``. + After balancing: + + - shards in the ``EU`` zone only contain documents where + ``country : DE``, + - shards in the ``UK`` zone only contain documents where + ``country : UK``, and + - shards in the ``NA`` zone only contain documents where + ``country : US`` or ``country : MX``. - A document with a value for ``country`` other than ``NA``, ``MX``, ``UK``, - or ``DE`` can reside on any shard in the cluster. + A document with a value for ``country`` other than ``US``, ``MX``, + ``UK``, or ``DE`` can reside on any shard in the cluster. - You can confirm the chunk distribution by running :method:`sh.status()`. -... \ No newline at end of file + To confirm the chunk distribution, run :method:`sh.status()`. +... diff --git a/source/includes/steps-sharding-segmenting-data-by-location.yaml b/source/includes/steps-sharding-segmenting-data-by-location.yaml index cc8e5638709..210f92a6705 100644 --- a/source/includes/steps-sharding-segmenting-data-by-location.yaml +++ b/source/includes/steps-sharding-segmenting-data-by-location.yaml @@ -136,12 +136,15 @@ pre: | :ref:`migrates ` chunks across the shards respecting the configured zones. - Once balancing finishes, the shards in the ``NA`` zone should only - contain documents with ``country : NA``, while shards in the ``EU`` zone - should only contain documents with ``country : UK`` or ``country : DE``. + Once balancing finishes: - A document with a value for ``country`` other than ``NA``, ``UK``, or + - shards in the ``NA`` zone should only contain documents with + ``country : US``, and + - shards in the ``EU`` zone should only contain documents with + ``country : UK`` or ``country : DE``. + + A document with a value for ``country`` other than ``US``, ``UK``, or ``DE`` can reside on any shard in the cluster. - You can confirm the chunk distribution by running :method:`sh.status()`. -... \ No newline at end of file + To confirm the chunk distribution, run :method:`sh.status()`. +... From 03fed325a432493349c74e56d8107b703fedceeb Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Tue, 15 Dec 2020 11:00:23 -0500 Subject: [PATCH 50/97] DOCSP-13625 fix formatting on $expr behavior section --- source/reference/operator/query/expr.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/reference/operator/query/expr.txt b/source/reference/operator/query/expr.txt index 4a03eea9777..8598f26fd1e 100644 --- a/source/reference/operator/query/expr.txt +++ b/source/reference/operator/query/expr.txt @@ -36,12 +36,12 @@ Behavior - :query:`$expr` can build query expressions that compare fields from the same document in a :pipeline:`$match` stage. - - If the :pipeline:`$match` stage is part of a :pipeline:`$lookup` - stage, :query:`$expr` can compare fields using ``let`` variables. - See :ref:`lookup-multiple-joins` for an example. + - If the :pipeline:`$match` stage is part of a :pipeline:`$lookup` + stage, :query:`$expr` can compare fields using ``let`` variables. + See :ref:`lookup-multiple-joins` for an example. - - :query:`$expr` only uses indexes on the ``from`` collection for - equality matches in a :pipeline:`$match` stage. + - :query:`$expr` only uses indexes on the ``from`` collection for + equality matches in a :pipeline:`$match` stage. - :query:`$expr` does not support :ref:`multikey indexes `. From 4c148cde7e1647d74cc0a34c52235939d5fcbf00 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Tue, 15 Dec 2020 11:28:25 -0500 Subject: [PATCH 51/97] DOCSP-13627 correct typo findAndModify upsert --- source/includes/extracts-parameter-upsert.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/includes/extracts-parameter-upsert.yaml b/source/includes/extracts-parameter-upsert.yaml index 06ac9401624..f431ccbf86f 100644 --- a/source/includes/extracts-parameter-upsert.yaml +++ b/source/includes/extracts-parameter-upsert.yaml @@ -23,7 +23,7 @@ source: replacement: upsertMethod: ":method:`~db.collection.findAndModify()`" queryOrFilter: query - conjunction: "Used in conjuction with the ``update`` field. + conjunction: "Used in conjunction with the ``update`` field. " From 631df97198e1b727117909b528fde6dd9f66a962 Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Wed, 9 Dec 2020 16:32:13 -0500 Subject: [PATCH 52/97] DOCSP-13579 clean up inconsistent formating of subsections --- source/core/index-creation.txt | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/source/core/index-creation.txt b/source/core/index-creation.txt index 9b8a7da77d6..e001e66cfb1 100644 --- a/source/core/index-creation.txt +++ b/source/core/index-creation.txt @@ -129,21 +129,25 @@ Index Build Impact on Database Performance ------------------------------------------ Index Builds During Write-Heavy Workloads - Building indexes during time periods where the target collection - is under heavy write load can result in reduced write - performance and longer index builds. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Consider designating a maintenance window during which applications - stop or reduce write operations against the collection. Start the - index build during this maintenance window to mitigate the - potential negative impact of the build process. +Building indexes during time periods where the target collection +is under heavy write load can result in reduced write +performance and longer index builds. + +Consider designating a maintenance window during which applications +stop or reduce write operations against the collection. Start the +index build during this maintenance window to mitigate the +potential negative impact of the build process. Insufficient Available System Memory (RAM) - .. include:: /includes/fact-index-build-default-memory-limit.rst +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: /includes/fact-index-build-default-memory-limit.rst - If the host machine has limited available free RAM, you may need - to schedule a maintenance period to increase the total system RAM - before you can modify the :binary:`~bin.mongod` RAM usage. +If the host machine has limited available free RAM, you may need +to schedule a maintenance period to increase the total system RAM +before you can modify the :binary:`~bin.mongod` RAM usage. .. _index-operations-replicated-build: .. _index-operations-simultaneous-build: From ac03311db8ffd17d8fd452b050c8773915081943 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 16 Dec 2020 13:50:55 -0500 Subject: [PATCH 53/97] DOCS-14061 generate initial changelog for 4.0.22 --- .../includes/changelogs/releases/4.0.22.rst | 81 +++++++++++++++++++ source/release-notes/4.0-changelog.txt | 2 + source/release-notes/4.0.txt | 23 ++++++ 3 files changed, 106 insertions(+) create mode 100644 source/includes/changelogs/releases/4.0.22.rst diff --git a/source/includes/changelogs/releases/4.0.22.rst b/source/includes/changelogs/releases/4.0.22.rst new file mode 100644 index 00000000000..fca0abd1aed --- /dev/null +++ b/source/includes/changelogs/releases/4.0.22.rst @@ -0,0 +1,81 @@ +.. _4.0.22-changelog: + +4.0.22 Changelog +---------------- + +Sharding +~~~~~~~~ + +- :issue:`SERVER-36739` Use the mongos_manual_intervention_action hook in concurrency stepdown suites +- :issue:`SERVER-41192` Add a metric for the size of the SessionCatalog under `logicalSessionRecordCache` +- :issue:`SERVER-42632` Disable pinger threads that reach out to config server to make integration tests pass +- :issue:`SERVER-46393` Always check client last operation time when computing operationTime to append to the response +- :issue:`SERVER-48679` flushRoutingTableCacheUpdates should block on critical section with kWrite, not kRead +- :issue:`SERVER-51808` invariant failure: readConcern level != Available +- :issue:`SERVER-51885` Blacklist balancing_sessions_collection.js from sharding_csrs_continuous_config_stepdown +- :issue:`SERVER-52955` KeysCollectionClientDirect should check if majority read concern is supported by storage engine + +Replication +~~~~~~~~~~~ + +- :issue:`SERVER-33747` Arbiter tries to start data replication if cannot find itself in config after restart +- :issue:`SERVER-50116` Forbid oplog writes when replication is enabled +- :issue:`SERVER-51262` Rename skipCheckingForNotMasterInCommandDispatch to skipCheckingForHelloInCommandDispatch +- :issue:`SERVER-51598` Add new test suites that test transaction expiration logic +- :issue:`SERVER-51887` "InvalidNamespace" in oplog tests on 4.0 branch +- :issue:`SERVER-52560` oplog_writes_only_permitted_on_standalone.js must wait for insert to be in stable checkpoint +- :issue:`SERVER-52680` Removed node on startup stuck in STARTUP2 after being re-added into the replica set +- :issue:`SERVER-53026` Secondary cannot restart replication + +Query +~~~~~ + +:issue:`SERVER-32960` $mod has inconsistent rounding/truncation behavior + +Aggregation +~~~~~~~~~~~ + +:issue:`SERVER-48523` Unconditionally check the first entry in the oplog when attempting to resume a change stream + +Storage +~~~~~~~ + +- :issue:`SERVER-51858` Investigate queryable issue on 4.0.20 +- :issue:`SERVER-52902` Remove assertion !haveJournalFiles() at dur_journal.cpp:265 + +Operations +~~~~~~~~~~ + +- :issue:`SERVER-46729` Make Windows shell soft-fail for unavailable OCSP responder +- :issue:`SERVER-51757` Collect /proc/vmstat numa_pages_migrated statistics in FTDC + +Build and Packaging +~~~~~~~~~~~~~~~~~~~ + +:issue:`SERVER-52891` Run PPC builds less frequently + +Internals +~~~~~~~~~ + +- :issue:`SERVER-45624` Pre-split and distribute chunks of sessions collection +- :issue:`SERVER-45992` InMemory engine startupwarnings confusing +- :issue:`SERVER-48742` Log whenever profiler settings are changed via setProfilingLevel +- :issue:`SERVER-49165` endSessions command in Client.Disconnect causes an authorization failure for an unauthed connection on a host that requires authentication +- :issue:`SERVER-50123` Record number of physical cores on all platforms +- :issue:`SERVER-50267` Set output limit for 'rawMongoProgramOutput()' +- :issue:`SERVER-50365` Stuck with long-running transactions that can't be timed out +- :issue:`SERVER-50445` Return the value as double when NumberLong subtraction overflows in ExpressionSubtract +- :issue:`SERVER-50605` Add {logMessage: "msg"} test-only command +- :issue:`SERVER-51303` Lookup stage followed by $match on type uses wrong field in matching condition +- :issue:`SERVER-51607` Upgrade Twisted dependency to at least twisted-19.7.0 +- :issue:`SERVER-51902` Check if storage engine supports Recover to Stable Timestamp rather than if eMRC=false in sync_tail.cpp +- :issue:`SERVER-52646` Validate and possibly fix edge cases in regex rewrite rules for userToDNMapping +- :issue:`SERVER-52654` new signing keys not generated by the monitoring-keys-for-HMAC thread +- :issue:`SERVER-52806` deb install files assume systemd +- :issue:`SERVER-52969` Disable Powercyle on non-master branches +- :issue:`SERVER-53233` Fix change_streams_update_lookup_shard_metadata_missing.js [4.2, 4.0] +- :issue:`SERVER-53348` Pin PyOpenSSL +- :issue:`WT-6507` Exit cache eviction worker after our operation has timed out +- :issue:`WT-6602` Allow operation timeout ms to be passed to commit and rollback +- :issue:`WT-6666` Start op timer when we configure it in rollback and commit + diff --git a/source/release-notes/4.0-changelog.txt b/source/release-notes/4.0-changelog.txt index d9e9f44c4e4..b09cdb99427 100644 --- a/source/release-notes/4.0-changelog.txt +++ b/source/release-notes/4.0-changelog.txt @@ -10,6 +10,8 @@ :depth: 1 :class: twocols +.. include:: /includes/changelogs/releases/4.0.22.rst + .. include:: /includes/changelogs/releases/4.0.21.rst .. include:: /includes/changelogs/releases/4.0.20.rst diff --git a/source/release-notes/4.0.txt b/source/release-notes/4.0.txt index 53c641fb53f..f0c151e8c0b 100644 --- a/source/release-notes/4.0.txt +++ b/source/release-notes/4.0.txt @@ -13,6 +13,29 @@ Release Notes for MongoDB 4.0 Minor Releases -------------- +.. _4.0.22-release-notes: + +4.0.22 - Upcoming +~~~~~~~~~~~~~~~~~ + +Issues fixed: + +- :issue:`SERVER-48523` Unconditionally check the first entry in the + oplog when attempting to resume a change stream +- :issue:`SERVER-50365` Stuck with long-running transactions that can't + be timed out +- :issue:`SERVER-51303` Lookup stage followed by $match on type uses + wrong field in matching condition +- :issue:`SERVER-52654` new signing keys not generated by the + monitoring-keys-for-HMAC thread +- :issue:`SERVER-52955` KeysCollectionClientDirect should check if + majority read concern is supported by storage engine + +- `All JIRA issues closed in 4.0.22 + `_ + +- :ref:`4.0.22-changelog` + .. _4.0.21-release-notes: 4.0.21 - Nov 10, 2020 From 1ca8a2cfdd175ccda4f9e49e2420b3ab0bdb4836 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 16 Dec 2020 13:46:57 -0500 Subject: [PATCH 54/97] DOCS-14062 generate initial changelog for 4.4.3 --- source/includes/changelogs/releases/4.4.3.rst | 149 ++++++++++++++++++ source/release-notes/4.4-changelog.txt | 2 + source/release-notes/4.4.txt | 20 +++ 3 files changed, 171 insertions(+) create mode 100644 source/includes/changelogs/releases/4.4.3.rst diff --git a/source/includes/changelogs/releases/4.4.3.rst b/source/includes/changelogs/releases/4.4.3.rst new file mode 100644 index 00000000000..b8cb58ada58 --- /dev/null +++ b/source/includes/changelogs/releases/4.4.3.rst @@ -0,0 +1,149 @@ +.. _4.4.3-changelog: + +4.4.3 Changelog +--------------- + +Sharding +~~~~~~~~ + +- :issue:`SERVER-48261` Unblacklist auth tests that use the 'mixedShardTest' helper +- :issue:`SERVER-48571` Write operation might invariant if a target error and a response error is received +- :issue:`SERVER-49713` Skip checking for orphaned documents in shard_removal_triggers_catalog_cache_invalidation.js +- :issue:`SERVER-51834` Race in moveChunk tests +- :issue:`SERVER-52686` Blacklist transactions_causal_consistency.js test from the sharding_csrs_continuous_config_stepdown +- :issue:`SERVER-53029` Port the changes for SERVER-52955 to later branches + +Replication +~~~~~~~~~~~ + +- :issue:`SERVER-33747` Arbiter tries to start data replication if cannot find itself in config after restart +- :issue:`SERVER-49159` Return NotPrimaryOrSecondary if currentTime is uninitialized in waitForReadConcernImpl +- :issue:`SERVER-49187` Make ReplSetTest .stepUp() robust to election failures. +- :issue:`SERVER-50049` assert.soonNoExcept() should not access TestData.traceExceptions for non-resmoke tests. +- :issue:`SERVER-50416` Change notMasterLegacyUnacknowledgedWrites to notPrimaryLegacyUnacknowledgedWrites in serverStatus +- :issue:`SERVER-50417` Change notMasterUnacknowledgedWrites to notPrimaryUnacknowledgedWrites in serverStatus +- :issue:`SERVER-50901` RollbackTest should wait for secondaries before doing data consistency checks +- :issue:`SERVER-51261` Rename hangWaitingForIsMasterResponseOnStandalone to hangWaitingForHelloResponseOnStandalone +- :issue:`SERVER-51262` Rename skipCheckingForNotMasterInCommandDispatch to skipCheckingForHelloInCommandDispatch +- :issue:`SERVER-51333` setFeatureCompatibilityVersion should fail when downgrading from FCV 4.4 to FCV 4.2 with long collection names present +- :issue:`SERVER-52560` oplog_writes_only_permitted_on_standalone.js must wait for insert to be in stable checkpoint +- :issue:`SERVER-52680` Removed node on startup stuck in STARTUP2 after being re-added into the replica set +- :issue:`SERVER-53197` Awaitable hello/isMaster appears in slow query log, part 2 + +Query +~~~~~ + +- :issue:`SERVER-32960` $mod has inconsistent rounding/truncation behavior +- :issue:`SERVER-40361` Reduce memory footprint of plan cache entries +- :issue:`SERVER-48529` Delete unused PlanCache::feedback() mechanism +- :issue:`SERVER-49744` Per-document scoring metadata for $search +- :issue:`SERVER-49810` Stable result comparison for facet/use_cases.js +- :issue:`SERVER-52589` Index key consistency check during FETCH may fail in certain cases + +Aggregation +~~~~~~~~~~~ + +- :issue:`SERVER-33966` redundant $sort in aggregation prevents best $limit $sort consolidation +- :issue:`SERVER-51886` $lookup + $merge pipeline may fail to resolve views correctly when collection names collide + +Storage +~~~~~~~ + +- :issue:`SERVER-50502` The lock manager dump logv2 message needs logv2::LogTruncation::Disabled set so that lock dumps are not truncated +- :issue:`SERVER-51122` [v4.4] The snapshot window code must use TestingProctor consistently and not getTestCommandsEnabled +- :issue:`SERVER-51858` Investigate queryable issue on 4.0.20 +- :issue:`SERVER-52950` recoverOplogAsStandalone mode must not start oplog truncater thread + +Operations +~~~~~~~~~~ + +- :issue:`SERVER-48221` Shut down ftdc after storage engine +- :issue:`SERVER-51603` add log message for failing validation via exception path +- :issue:`SERVER-51652` add better error handling for validate's use of KeyString +- :issue:`SERVER-51757` Collect /proc/vmstat numa_pages_migrated statistics in FTDC +- :issue:`SERVER-51829` always show index-level corruption reasons in validate output + +Build and Packaging +~~~~~~~~~~~~~~~~~~~ + +- :issue:`SERVER-52580` Windows mh artifacts missing from 4.4 branch +- :issue:`SERVER-52891` Run PPC builds less frequently + +Internals +~~~~~~~~~ + +- :issue:`SERVER-47863` Initial Sync Progress Metrics +- :issue:`SERVER-49232` Confusing log message when fail point is activated +- :issue:`SERVER-50267` Set output limit for 'rawMongoProgramOutput()' +- :issue:`SERVER-50271` Remove --logv2 from shell +- :issue:`SERVER-50445` Return the value as double when NumberLong subtraction overflows in ExpressionSubtract +- :issue:`SERVER-50547` Explore aggregation pipeline length limit +- :issue:`SERVER-51057` Test that getMore metrics are incremented in server_status_metrics.js +- :issue:`SERVER-51405` Disable some concurrency suites for ephemeralForTest on v4.4 +- :issue:`SERVER-51454` operationProfiling.filter config option rejects agg expressions +- :issue:`SERVER-51526` Hybrid index builds can miss writes and crash in the event of a well-timed WriteConflictException +- :issue:`SERVER-51715` Wrap timestamps with tojson() in log lines in optime.js +- :issue:`SERVER-51718` Disallow sparse, hashed indexes from being considered for answering $exists: false queries. +- :issue:`SERVER-51733` config server in a docker container fails to start up with authentication +- :issue:`SERVER-51793` Speed up compile tasks generated by burn_in_tags by running them on rhel62-large +- :issue:`SERVER-51796` Missing comma in "Restoring orphaned data file" (22334) log message parameters +- :issue:`SERVER-51797` Add task_path_suffix to evergreen.yml +- :issue:`SERVER-51818` add name to invariant message in Mutex destructor +- :issue:`SERVER-52586` Disable refine_shard_key_transaction_stress task in sys-perf +- :issue:`SERVER-52625` linkbenches write to conventional location +- :issue:`SERVER-52646` Validate and possibly fix edge cases in regex rewrite rules for userToDNMapping +- :issue:`SERVER-52654` new signing keys not generated by the monitoring-keys-for-HMAC thread +- :issue:`SERVER-52666` ycsb is a module and writes to a convenitional location +- :issue:`SERVER-52746` Ensure tailable cursor in find_cmd.js is invalidated +- :issue:`SERVER-52775` Fix sys-perf module issues +- :issue:`SERVER-52806` deb install files assume systemd +- :issue:`SERVER-52824` Support AWS roles with paths +- :issue:`SERVER-52834` Migrate sys-perf and perf tasks to use the new run_workload DSI command +- :issue:`SERVER-52867` Make sure secondary has finished closing connections after being removed before sending new commands in awaitable_hello_on_nodes_with_invalid_configs.js +- :issue:`SERVER-52929` Correctly handle compound indexes with 32 keys +- :issue:`SERVER-52969` Disable Powercyle on non-master branches +- :issue:`SERVER-52975` Fix use of 'onRollback' callback for collection validator options in 'collection_impl.cpp' +- :issue:`SERVER-52983` Assertions in initial_sync_replSetGetStatus.js have to account for batch sizes smaller than collectionClonerBatchSize +- :issue:`SERVER-53017` replSetGetStatus remainingInitialSyncEstimatedMillis always 0 +- :issue:`SERVER-53058` Better account of CleanEveryN runtime when setting dynamic timeouts +- :issue:`SERVER-53068` Use 10gen/linkbench2 instead of mdcallag/linkbench for system perf +- :issue:`SERVER-53196` Fail to generate tasks if a large distro is specified but not available +- :issue:`SERVER-53314` Generated tasks can specify a null distro +- :issue:`SERVER-53323` Run concurrency_simultaneous_replication on large distro on Enterprise Windows (inMemory) buildvariant +- :issue:`WT-4780` Enable assertion that commit timestamp is newer than all readers +- :issue:`WT-6449` Hang analyzer for WT Evergreen tests +- :issue:`WT-6563` Create a reproducer for invalid modification application +- :issue:`WT-6678` Remove Huffman Encoding support for Keys +- :issue:`WT-6693` Add compatibility testing for imported objects +- :issue:`WT-6713` Remove transaction support from custom data sources +- :issue:`WT-6722` Review function names in history store module +- :issue:`WT-6750` Assert to ensure no duplicate entries in the history store +- :issue:`WT-6752` Assert history store will not have any uncommitted updates +- :issue:`WT-6753` Assert only stop time pair of history store update can be modified. +- :issue:`WT-6816` Design write gen scheme to allow dhandles with active history to get closed/re-opened +- :issue:`WT-6824` Fix OSX python test errors related to UTF encoding +- :issue:`WT-6828` Fix doc link in README +- :issue:`WT-6830` Encode bytes before concatenating with string +- :issue:`WT-6835` Add API to allow consolidating incremental backup info +- :issue:`WT-6836` Handle the last key in the shadow table being removed by rollback to stable in timestamp abort +- :issue:`WT-6839` Add API to query existing incremental backup IDs +- :issue:`WT-6842` Add example showing using src_id only +- :issue:`WT-6844` Make force stop durable +- :issue:`WT-6845` Set session btree to HS when operating on history store +- :issue:`WT-6860` Add relevant history store statistics to data handles +- :issue:`WT-6867` Documentation: create model subpages for architecture guide +- :issue:`WT-6868` Don't cache history store cursor for operations on metadata +- :issue:`WT-6870` Rename history store statistic to better describe its use case. +- :issue:`WT-6872` Replace the yield instructions with an ISB +- :issue:`WT-6875` Remove legacy import invocation +- :issue:`WT-6882` Files created during incremental backup should be copied in full +- :issue:`WT-6883` Redo change for breaking up backup ranges and fix for EOF +- :issue:`WT-6916` Create stub subpages for architecture guide +- :issue:`WT-6922` Add random consolidate testing to incr_backup +- :issue:`WT-6925` Fix incorrect comment +- :issue:`WT-6934` Fix __wt_hs_upd_find wrongly returns WT_NOTFOUND +- :issue:`WT-6957` Reposition the cursor if __wt_hs_modify return WT_RESTART +- :issue:`WT-6958` Fix history store cursor position after operations +- :issue:`WT-6961` RTS no stable timestamp +- :issue:`WT-6986` Add UndoDB support to format.sh + diff --git a/source/release-notes/4.4-changelog.txt b/source/release-notes/4.4-changelog.txt index c6d49bac275..480d592007e 100644 --- a/source/release-notes/4.4-changelog.txt +++ b/source/release-notes/4.4-changelog.txt @@ -10,6 +10,8 @@ :depth: 1 :class: singlecol +.. include:: /includes/changelogs/releases/4.4.3.rst + .. include:: /includes/changelogs/releases/4.4.2.rst .. include:: /includes/changelogs/releases/4.4.1.rst diff --git a/source/release-notes/4.4.txt b/source/release-notes/4.4.txt index 850b5551f83..c3da18dd447 100644 --- a/source/release-notes/4.4.txt +++ b/source/release-notes/4.4.txt @@ -13,6 +13,26 @@ Release Notes for MongoDB 4.4 Minor Releases -------------- +.. _4.4.3-release-notes: + +4.4.3 - Upcoming +~~~~~~~~~~~~~~~~ + +Issues fixed: + +- :issue:`SERVER-33966`: redundant $sort in aggregation prevents best + $limit $sort consolidation +- :issue:`SERVER-40361`: Reduce memory footprint of plan cache entries +- :issue:`SERVER-52654`: new signing keys not generated by the + monitoring-keys-for-HMAC thread +- :issue:`SERVER-52824`: Support AWS roles with paths +- :issue:`SERVER-52929`: Correctly handle compound indexes with 32 keys + +- `All JIRA issues closed in 4.4.3 + `_ + +- :ref:`4.4.3-changelog` + .. _4.4.2-release-notes: 4.4.2 - Nov 18, 2020 From bd108e0a043ca9a7759d09b568036e9d5d95c4ab Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Wed, 16 Dec 2020 16:24:39 -0500 Subject: [PATCH 55/97] DOCSP-13652 fix subject verb agreement error --- source/core/data-modeling-introduction.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/core/data-modeling-introduction.txt b/source/core/data-modeling-introduction.txt index 8548326a33a..228a76b8952 100644 --- a/source/core/data-modeling-introduction.txt +++ b/source/core/data-modeling-introduction.txt @@ -22,7 +22,7 @@ Flexible Schema Unlike SQL databases, where you must determine and declare a table's schema before inserting data, MongoDB's :term:`collections -`, by default, does not require its :doc:`documents +`, by default, do not require their :doc:`documents ` to have the same schema. That is: - The documents in a single collection do not need to have the same set From a442cb569dea3907346907d8a63dacc5ce8387d7 Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Tue, 15 Dec 2020 15:53:30 -0500 Subject: [PATCH 56/97] DOCSP-13972 clean shutdown notice for v4.4 downgrade docs --- .../includes/4.4-downgrade-clean-shutdown.rst | 8 +++++ .../includes/steps-4.4-downgrade-mongod.yaml | 32 ++++++++++------- .../steps-4.4-downgrade-replica-set.yaml | 24 +++---------- .../steps-4.4-downgrade-sharded-cluster.yaml | 36 ++++++++----------- 4 files changed, 46 insertions(+), 54 deletions(-) create mode 100644 source/includes/4.4-downgrade-clean-shutdown.rst diff --git a/source/includes/4.4-downgrade-clean-shutdown.rst b/source/includes/4.4-downgrade-clean-shutdown.rst new file mode 100644 index 00000000000..38c74a8b77e --- /dev/null +++ b/source/includes/4.4-downgrade-clean-shutdown.rst @@ -0,0 +1,8 @@ +Run the following command from the :binary:`~bin.mongo` shell to +perform a clean shutdown, or refer to +:ref:`terminate-mongod-processes` for additional ways to safely +terminate the :binary:`~bin.mongod` process: + +.. code-block:: javascript + + db.adminCommand( { shutdown: 1 } ) diff --git a/source/includes/steps-4.4-downgrade-mongod.yaml b/source/includes/steps-4.4-downgrade-mongod.yaml index 93cc8cf8cc4..b04bd3ec15b 100644 --- a/source/includes/steps-4.4-downgrade-mongod.yaml +++ b/source/includes/steps-4.4-downgrade-mongod.yaml @@ -10,22 +10,28 @@ content: | .. include:: /includes/downgrade-path.rst --- -title: "Restart with the latest |oldversion| ``mongod`` instance." +title: "Shut down the ``mongod`` instance." level: 4 -ref: 4.4-downgrade-restart-instance +ref: 4.4-downgrade-shutdown-instance content: | - Shut down your :binary:`~bin.mongod` instance. Replace the existing - binary with the downloaded :binary:`~bin.mongod` binary and restart. - - a. Shut down your :binary:`~bin.mongod` instance. To safely terminate - the :binary:`~bin.mongod` process, you can connect a - :binary:`~bin.mongo` shell to the instance and run: + + To cleanly shut down the :binary:`~bin.mongod` process, connect a + :binary:`~bin.mongo` shell to the instance and run: - .. code-block:: javascript + .. code-block:: javascript - db.adminCommand( { shutdown: 1 } ) + db.adminCommand( { shutdown: 1 } ) + + A :ref:`clean shutdown ` of a + :binary:`~bin.mongod` completes all pending operations, + flushes all data to data files, and closes all data files. +--- +title: "Restart with the latest |oldversion| ``mongod`` instance." +level: 4 +ref: 4.4-downgrade-restart-instance +content: | - b. Replace the |newversion| binary with the downloaded |oldversion| - :binary:`~bin.mongod` binary and restart. + Replace the |newversion| binary with the downloaded |oldversion| + :binary:`~bin.mongod` binary and restart. -... \ No newline at end of file +... diff --git a/source/includes/steps-4.4-downgrade-replica-set.yaml b/source/includes/steps-4.4-downgrade-replica-set.yaml index b381cf41b47..9f9fca98817 100644 --- a/source/includes/steps-4.4-downgrade-replica-set.yaml +++ b/source/includes/steps-4.4-downgrade-replica-set.yaml @@ -17,13 +17,9 @@ content: | Downgrade each :term:`secondary` member of the replica set, one at a time: - a. Shut down the :binary:`~bin.mongod`. + a. .. include:: /includes/4.4-downgrade-clean-shutdown.rst - .. code-block:: javascript - - db.adminCommand( { shutdown: 1 } ) - - #. Replace the |newversion| binary with the |oldversion| binary and restart. + #. Replace the |newversion| binary with the |oldversion| binary and restart. #. Wait for the member to recover to ``SECONDARY`` state before downgrading the next secondary. To check the member's state, @@ -42,13 +38,7 @@ content: | Downgrade the :ref:`arbiter ` member of the replica set: - a. Shut down the :binary:`~bin.mongod`. See - :ref:`terminate-mongod-processes` for additional ways to safely - terminate :binary:`~bin.mongod` processes. - - .. code-block:: javascript - - db.adminCommand( { shutdown: 1 } ) + a. .. include:: /includes/4.4-downgrade-clean-shutdown.rst #. Delete the contents of the arbiter data directory. The :setting:`storage.dbPath` configuration setting or @@ -87,13 +77,9 @@ content: | When :method:`rs.status()` shows that the primary has stepped down and another member has assumed ``PRIMARY`` state: - a. Shut down the previous primary. - - .. code-block:: javascript - - db.adminCommand( { shutdown: 1 } ) + a. .. include:: /includes/4.4-downgrade-clean-shutdown.rst b. Replace the :binary:`~bin.mongod` binary with the |oldversion| binary and restart. -... \ No newline at end of file +... diff --git a/source/includes/steps-4.4-downgrade-sharded-cluster.yaml b/source/includes/steps-4.4-downgrade-sharded-cluster.yaml index 672a6694bac..f802eca3280 100644 --- a/source/includes/steps-4.4-downgrade-sharded-cluster.yaml +++ b/source/includes/steps-4.4-downgrade-sharded-cluster.yaml @@ -56,11 +56,7 @@ content: | A. Downgrade the shard's :ref:`secondary ` members one at a time: - a. Shut down the :binary:`~bin.mongod` instance. - - .. code-block:: javascript - - db.adminCommand( { shutdown: 1 } ) + 1. .. include:: /includes/4.4-downgrade-clean-shutdown.rst #. Replace the |newversion| binary with the |oldversion| binary and restart. @@ -76,13 +72,7 @@ content: | Skip this step if the replica set does not include an arbiter. - a. Shut down the :binary:`~bin.mongod`. See - :ref:`terminate-mongod-processes` for additional ways to safely - terminate :binary:`~bin.mongod` processes. - - .. code-block:: javascript - - db.adminCommand( { shutdown: 1 } ) + 1. .. include:: /includes/4.4-downgrade-clean-shutdown.rst #. Delete the contents of the arbiter data directory. The :setting:`storage.dbPath` configuration setting or @@ -101,7 +91,7 @@ content: | #. Downgrade the shard's primary. - a. Step down the replica set primary. Connect a + 1. Step down the replica set primary. Connect a :binary:`~bin.mongo` shell to the primary and use :method:`rs.stepDown()` to step down the primary and force an election of a new primary: @@ -119,7 +109,10 @@ content: | When the status shows that the primary has stepped down and another member has assumed ``PRIMARY`` state, proceed. - #. Shut down the stepped-down primary. + #. Run the following command from the :binary:`~bin.mongo` shell to + perform a clean shutdown of the stepped-down primary, or refer to + :ref:`terminate-mongod-processes` for additional ways to safely + terminate the :binary:`~bin.mongod` process: .. code-block:: javascript @@ -138,11 +131,7 @@ content: |- A. Downgrade the :ref:`secondary ` members of the config servers replica set (CSRS) one at a time: - a. Shut down the :binary:`~bin.mongod` instance. - - .. code-block:: javascript - - db.adminCommand( { shutdown: 1 } ) + 1. .. include:: /includes/4.4-downgrade-clean-shutdown.rst #. Replace the |newversion| binary with the |oldversion| binary and restart. @@ -157,7 +146,7 @@ content: |- #. Step down the config server primary. - a. Connect a :binary:`~bin.mongo` shell to the primary and use + 1. Connect a :binary:`~bin.mongo` shell to the primary and use :method:`rs.stepDown()` to step down the primary and force an election of a new primary: @@ -174,7 +163,10 @@ content: |- When the status shows that the primary has stepped down and another member has assumed ``PRIMARY`` state, proceed. - #. Shut down the stepped-down primary. + #. Run the following command from the :binary:`~bin.mongo` shell to + perform a clean shutdown of the stepped-down primary, or refer to + :ref:`terminate-mongod-processes` for additional ways to safely + terminate the :binary:`~bin.mongod` process: .. code-block:: javascript @@ -201,4 +193,4 @@ content: | The :binary:`~bin.mongo` shell method :method:`sh.startBalancer()` also enables auto-splitting for the sharded cluster. -... \ No newline at end of file +... From 4a75972e73181184566593e102dec525d4fb85da Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Mon, 14 Dec 2020 15:41:17 -0500 Subject: [PATCH 57/97] DOCS-14053 sampleRate misclassified as stage --- source/includes/extracts-agg-operators.yaml | 19 +++++++++++++++++++ source/includes/extracts-agg-stages.yaml | 7 ------- source/meta/aggregation-quick-reference.txt | 5 +++++ .../operator/aggregation-pipeline.txt | 9 --------- source/reference/operator/aggregation.txt | 17 ++++++++++++++++- .../operator/aggregation/sampleRate.txt | 4 ++-- 6 files changed, 42 insertions(+), 19 deletions(-) diff --git a/source/includes/extracts-agg-operators.yaml b/source/includes/extracts-agg-operators.yaml index 846bce4eeef..e08574d4c61 100644 --- a/source/includes/extracts-agg-operators.yaml +++ b/source/includes/extracts-agg-operators.yaml @@ -478,6 +478,24 @@ content: | specify the date argument first as it is not meaningful to subtract a date from a number. +--- +ref: agg-operators-miscellaneous +content: | + + .. list-table:: + :header-rows: 1 + :widths: 20 80 + + * - Name + - Description + + * - :expression:`$sampleRate` + + - Randomly select documents at a given rate. Although the exact + number of documents selected varies on each run, the quantity + chosen approximates the sample rate expressed as a percentage + of the total number of documents. + --- ref: agg-operators-objects content: | @@ -768,6 +786,7 @@ content: | aggregation pipeline may interpret as an expression. For example, use a :expression:`$literal` expression to a string that starts with a ``$`` to avoid parsing as a field path. + --- ref: agg-operators-custom-aggregation content: | diff --git a/source/includes/extracts-agg-stages.yaml b/source/includes/extracts-agg-stages.yaml index ecd3ce61ac5..1d3fc610205 100644 --- a/source/includes/extracts-agg-stages.yaml +++ b/source/includes/extracts-agg-stages.yaml @@ -165,13 +165,6 @@ content: | - Randomly selects the specified number of documents from its input. - * - :pipeline:`$sampleRate` - - - Randomly select documents at a given rate. Although the exact - number of documents selected varies on each run, the quantity - chosen approximates the sample rate expressed as a percentage - of the total number of documents. - * - :pipeline:`$set` - Adds new fields to documents. Similar to diff --git a/source/meta/aggregation-quick-reference.txt b/source/meta/aggregation-quick-reference.txt index c472c467413..21e795f2958 100644 --- a/source/meta/aggregation-quick-reference.txt +++ b/source/meta/aggregation-quick-reference.txt @@ -262,6 +262,11 @@ Literal Expression Operator .. include:: /includes/extracts/agg-operators-literal.rst +Miscellaneous Operators +~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: /includes/extracts/agg-operators-miscellaneous.rst + Object Expression Operators ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/reference/operator/aggregation-pipeline.txt b/source/reference/operator/aggregation-pipeline.txt index d737cb143ce..3a16d04f19f 100644 --- a/source/reference/operator/aggregation-pipeline.txt +++ b/source/reference/operator/aggregation-pipeline.txt @@ -242,14 +242,6 @@ Alphabetical Listing of Stages - Randomly selects the specified number of documents from its input. - * - :pipeline:`$sampleRate` - - - Randomly select documents at a given rate. Although the exact - number of documents selected varies on each run, the quantity - chosen approximates the sample rate expressed as a percentage - of the total number of documents. - - * - :pipeline:`$set` - Adds new fields to documents. Outputs documents that @@ -334,7 +326,6 @@ Alphabetical Listing of Stages /reference/operator/aggregation/replaceRoot /reference/operator/aggregation/replaceWith /reference/operator/aggregation/sample - /reference/operator/aggregation/sampleRate /reference/operator/aggregation/set /reference/operator/aggregation/skip /reference/operator/aggregation/sort diff --git a/source/reference/operator/aggregation.txt b/source/reference/operator/aggregation.txt index 65f93e3fbee..e2f60776cf9 100644 --- a/source/reference/operator/aggregation.txt +++ b/source/reference/operator/aggregation.txt @@ -82,6 +82,12 @@ Literal Expression Operator .. include:: /includes/extracts/agg-operators-literal.rst +Miscellaneous Operators +~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: /includes/extracts/agg-operators-miscellaneous.rst + + Object Expression Operators ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -703,7 +709,15 @@ Alphabetical Listing of Expression Operators * - :expression:`$rtrim` - Removes whitespace or the specified characters from the end of a string. - + + + * - :expression:`$sampleRate` + + - Randomly select documents at a given rate. Although the exact + number of documents selected varies on each run, the quantity + chosen approximates the sample rate expressed as a percentage + of the total number of documents. + * - :expression:`$second` @@ -1040,6 +1054,7 @@ Alphabetical Listing of Expression Operators /reference/operator/aggregation/reverseArray /reference/operator/aggregation/round /reference/operator/aggregation/rtrim + /reference/operator/aggregation/sampleRate /reference/operator/aggregation/second /reference/operator/aggregation/setDifference /reference/operator/aggregation/setEquals diff --git a/source/reference/operator/aggregation/sampleRate.txt b/source/reference/operator/aggregation/sampleRate.txt index 1b87ca88c2d..4f07e6650e3 100644 --- a/source/reference/operator/aggregation/sampleRate.txt +++ b/source/reference/operator/aggregation/sampleRate.txt @@ -13,7 +13,7 @@ $sampleRate (aggregation) Definition ---------- -.. pipeline:: $sampleRate +.. expression:: $sampleRate .. versionadded:: 4.4.2 @@ -21,7 +21,7 @@ Definition documents selected approximates the sample rate expressed as a percentage of the total number of documents. - The :pipeline:`$sampleRate` operator has the following syntax: + The :expression:`$sampleRate` operator has the following syntax: .. code-block:: javascript From b5c9a23df1ff58818cb16750c1088c45fa9fb3cb Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Tue, 22 Dec 2020 16:14:07 -0500 Subject: [PATCH 58/97] DOCSP-13712 replace term relative for pwd() --- source/reference/method/pwd.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/source/reference/method/pwd.txt b/source/reference/method/pwd.txt index e7e6e1d8afb..2e7dfc2abcf 100644 --- a/source/reference/method/pwd.txt +++ b/source/reference/method/pwd.txt @@ -12,7 +12,5 @@ pwd() .. method:: pwd() - Returns the current directory. - - This function returns with output relative to the current shell - session, and does not impact the server. + Returns the current working directory of the active shell session, + and does not impact the server. From 7a0663643293ae0042b118e8695e67338b2b832e Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Mon, 21 Dec 2020 12:06:58 -0500 Subject: [PATCH 59/97] DOCS-14049 "Index Intersection and Sort" clarification --- source/core/index-intersection.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/core/index-intersection.txt b/source/core/index-intersection.txt index 8c089e53bfa..bd2374da44a 100644 --- a/source/core/index-intersection.txt +++ b/source/core/index-intersection.txt @@ -133,15 +133,18 @@ For example, the ``orders`` collection has the following indexes: { status: 1 } { ord_date: -1 } -MongoDB cannot use index intersection for the following query with sort: +MongoDB cannot use index intersection for the following query because +the :method:`~cursor.sort()` requires an index separate from the query +predicate: .. code-block:: javascript db.orders.find( { qty: { $gt: 10 } } ).sort( { status: 1 } ) -That is, MongoDB does not use the ``{ qty: 1 }`` index for the query, -and the separate ``{ status: 1 }`` or the ``{ status: 1, ord_date: -1 -}`` index for the sort. +That is, MongoDB cannot use either of these index intersections: + +- ``{ qty: 1 }`` and ``{ status: 1 }`` +- ``{ qty: 1 }`` and ``{ status: 1, ord_date: -1 }`` However, MongoDB can use index intersection for the following query with sort since the index ``{ status: 1, ord_date: -1 }`` can fulfill From f9addbff40628da6704e5eb0503a9a4d6e7dfa8f Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 28 Dec 2020 11:11:01 -0500 Subject: [PATCH 60/97] DOCSP-13725 update returns section with array name --- source/reference/method/db.collection.insertMany.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/reference/method/db.collection.insertMany.txt b/source/reference/method/db.collection.insertMany.txt index e17bca5bd3e..0d346bf36f9 100644 --- a/source/reference/method/db.collection.insertMany.txt +++ b/source/reference/method/db.collection.insertMany.txt @@ -81,10 +81,12 @@ Definition A document containing: - - A boolean ``acknowledged`` as ``true`` if the operation ran with - :term:`write concern` or ``false`` if write concern was disabled + - An ``acknowledged`` boolean, set to ``true`` if the operation + ran with :term:`write concern` or ``false`` if write concern + was disabled - - An array of ``_id`` for each successfully inserted documents + - An ``insertedIds`` array, containing ``_id`` values for each + successfully inserted document Behaviors --------- From f1eac0adbeca2a5678e38aee1326ee1749abb752 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 28 Dec 2020 15:40:33 -0500 Subject: [PATCH 61/97] DOCSP-13735 add empty array result for setIntersection --- source/reference/operator/aggregation/setIntersection.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/reference/operator/aggregation/setIntersection.txt b/source/reference/operator/aggregation/setIntersection.txt index 32351fcd6d3..da8061c3911 100644 --- a/source/reference/operator/aggregation/setIntersection.txt +++ b/source/reference/operator/aggregation/setIntersection.txt @@ -36,6 +36,9 @@ Behavior .. include:: /includes/important-set-operator-semantics.rst +If no intersections are found (i.e. the input arrays contain no common +elements), :expression:`$setIntersection` returns an empty array. + .. include:: /includes/extracts/fact-agg-top-level-expressions-setIntersection.rst .. list-table:: From 87b412d72507614edc00590866ca974843fa1467 Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Tue, 22 Dec 2020 16:50:03 -0500 Subject: [PATCH 62/97] DOCSP-13710 monotonically changing shard keys --- source/core/sharding-shard-key.txt | 38 +++++++++++++++++------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/source/core/sharding-shard-key.txt b/source/core/sharding-shard-key.txt index 3598ebdfbe3..531b64c510f 100644 --- a/source/core/sharding-shard-key.txt +++ b/source/core/sharding-shard-key.txt @@ -213,7 +213,7 @@ the cluster. See also :ref:`sharding strategy `. At minimum, consider the consequences of the :ref:`cardinality`, :ref:`frequency`, and -rate of :ref:`change` of a potential shard key. +:ref:`monotonicity` of a potential shard key. .. note:: @@ -269,11 +269,12 @@ inserts may look similar to the following: The cluster in this example would *not* scale horizontally, as incoming writes would only route to a subset of shards. -A shard key with high cardinality does not guarantee even distribution of data -across the sharded cluster, though it does better facilitate horizontal -scaling. The :ref:`frequency ` and :ref:`rate of -change ` of the shard key also contributes to data -distribution. Consider each factor when choosing a shard key. +Choosing a shard key with high cardinality does not, on its own, +guarantee even distribution of data across the sharded cluster. The +:ref:`frequency ` and +:ref:`monotonicity ` of the shard key also +contribute to data distribution. Take each factor into account when +choosing a shard key. If your data model requires sharding on a key that has low cardinality, consider using a :term:`compound index` using a field that @@ -298,10 +299,12 @@ distribution of inserts may look similar to the following: .. include:: /images/sharded-cluster-ranged-distribution-frequency.rst -A shard key with low frequency does not guarantee even distribution of data -across the sharded cluster. The :ref:`cardinality ` and -:ref:`rate of change ` of the shard key also contributes -to data distribution. Consider each factor when choosing a shard key. +Choosing a shard key with low frequency does not, on its own, guarantee +even distribution of data across the sharded cluster. +The :ref:`cardinality ` and +:ref:`monotonicity ` of the shard key also +contribute to data distribution. Take each factor into account when +choosing a shard key. If your data model requires sharding on a key that has high frequency values, consider using a :term:`compound index` using a unique or @@ -309,8 +312,8 @@ low frequency value. .. _shard-key-monotonic: -Monotonically Changing Shard Keys -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Shard Key Monotonicity +~~~~~~~~~~~~~~~~~~~~~~ A shard key on a value that increases or decreases monotonically is more likely to distribute inserts to a single shard within the cluster. @@ -336,11 +339,12 @@ distribution of inserts may look similar to the following: If the shard key value was monotonically decreasing, then all inserts would route to ``Chunk A`` instead. -A shard key that does not change monotonically does not guarantee even -distribution of data across the sharded cluster. The -:ref:`cardinality` and -:ref:`frequency` of the shard key also contributes to -data distribution. Consider each factor when choosing a shard key. +Choosing a shard key that does not change monotonically does not, on +its own, guarantee even distribution of data across the sharded cluster. +The :ref:`cardinality` and +:ref:`frequency` of the shard key also contribute +to data distribution. Take each factor into account when choosing a +shard key. If your data model requires sharding on a key that changes monotonically, consider using :doc:`/core/hashed-sharding`. From 21f16e4556db437126d3aaafd54e1a1a9f6d88ad Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 4 Jan 2021 16:21:38 -0500 Subject: [PATCH 63/97] DOCS-14070 finalize and release 4.4.3 changelog --- source/includes/changelogs/releases/4.4.3.rst | 18 ++++++++++++------ source/release-notes/4.4.txt | 6 +++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/source/includes/changelogs/releases/4.4.3.rst b/source/includes/changelogs/releases/4.4.3.rst index b8cb58ada58..daaf62e8c68 100644 --- a/source/includes/changelogs/releases/4.4.3.rst +++ b/source/includes/changelogs/releases/4.4.3.rst @@ -8,7 +8,6 @@ Sharding - :issue:`SERVER-48261` Unblacklist auth tests that use the 'mixedShardTest' helper - :issue:`SERVER-48571` Write operation might invariant if a target error and a response error is received -- :issue:`SERVER-49713` Skip checking for orphaned documents in shard_removal_triggers_catalog_cache_invalidation.js - :issue:`SERVER-51834` Race in moveChunk tests - :issue:`SERVER-52686` Blacklist transactions_causal_consistency.js test from the sharding_csrs_continuous_config_stepdown - :issue:`SERVER-53029` Port the changes for SERVER-52955 to later branches @@ -43,8 +42,7 @@ Query Aggregation ~~~~~~~~~~~ -- :issue:`SERVER-33966` redundant $sort in aggregation prevents best $limit $sort consolidation -- :issue:`SERVER-51886` $lookup + $merge pipeline may fail to resolve views correctly when collection names collide +:issue:`SERVER-33966` redundant $sort in aggregation prevents best $limit $sort consolidation Storage ~~~~~~~ @@ -79,7 +77,9 @@ Internals - :issue:`SERVER-50445` Return the value as double when NumberLong subtraction overflows in ExpressionSubtract - :issue:`SERVER-50547` Explore aggregation pipeline length limit - :issue:`SERVER-51057` Test that getMore metrics are incremented in server_status_metrics.js +- :issue:`SERVER-51164` Remove non-DSI Microbenchmarks - :issue:`SERVER-51405` Disable some concurrency suites for ephemeralForTest on v4.4 +- :issue:`SERVER-51418` Resolve race condition in StepdownShouldInterruptConfigWrite - :issue:`SERVER-51454` operationProfiling.filter config option rejects agg expressions - :issue:`SERVER-51526` Hybrid index builds can miss writes and crash in the event of a well-timed WriteConflictException - :issue:`SERVER-51715` Wrap timestamps with tojson() in log lines in optime.js @@ -99,25 +99,24 @@ Internals - :issue:`SERVER-52806` deb install files assume systemd - :issue:`SERVER-52824` Support AWS roles with paths - :issue:`SERVER-52834` Migrate sys-perf and perf tasks to use the new run_workload DSI command -- :issue:`SERVER-52867` Make sure secondary has finished closing connections after being removed before sending new commands in awaitable_hello_on_nodes_with_invalid_configs.js - :issue:`SERVER-52929` Correctly handle compound indexes with 32 keys - :issue:`SERVER-52969` Disable Powercyle on non-master branches - :issue:`SERVER-52975` Fix use of 'onRollback' callback for collection validator options in 'collection_impl.cpp' -- :issue:`SERVER-52983` Assertions in initial_sync_replSetGetStatus.js have to account for batch sizes smaller than collectionClonerBatchSize - :issue:`SERVER-53017` replSetGetStatus remainingInitialSyncEstimatedMillis always 0 - :issue:`SERVER-53058` Better account of CleanEveryN runtime when setting dynamic timeouts - :issue:`SERVER-53068` Use 10gen/linkbench2 instead of mdcallag/linkbench for system perf - :issue:`SERVER-53196` Fail to generate tasks if a large distro is specified but not available - :issue:`SERVER-53314` Generated tasks can specify a null distro -- :issue:`SERVER-53323` Run concurrency_simultaneous_replication on large distro on Enterprise Windows (inMemory) buildvariant - :issue:`WT-4780` Enable assertion that commit timestamp is newer than all readers - :issue:`WT-6449` Hang analyzer for WT Evergreen tests - :issue:`WT-6563` Create a reproducer for invalid modification application - :issue:`WT-6678` Remove Huffman Encoding support for Keys - :issue:`WT-6693` Add compatibility testing for imported objects +- :issue:`WT-6706` Add table import repair functionality - :issue:`WT-6713` Remove transaction support from custom data sources - :issue:`WT-6722` Review function names in history store module - :issue:`WT-6750` Assert to ensure no duplicate entries in the history store +- :issue:`WT-6751` Assert if new value is the same as old value for a history store update - :issue:`WT-6752` Assert history store will not have any uncommitted updates - :issue:`WT-6753` Assert only stop time pair of history store update can be modified. - :issue:`WT-6816` Design write gen scheme to allow dhandles with active history to get closed/re-opened @@ -130,14 +129,21 @@ Internals - :issue:`WT-6842` Add example showing using src_id only - :issue:`WT-6844` Make force stop durable - :issue:`WT-6845` Set session btree to HS when operating on history store +- :issue:`WT-6857` Define a new cursor for the history store access. +- :issue:`WT-6858` Implement insert method for the history store cursor +- :issue:`WT-6859` Implement search_near method for the history store cursor - :issue:`WT-6860` Add relevant history store statistics to data handles - :issue:`WT-6867` Documentation: create model subpages for architecture guide - :issue:`WT-6868` Don't cache history store cursor for operations on metadata +- :issue:`WT-6869` Assert tree walk never return the start ref - :issue:`WT-6870` Rename history store statistic to better describe its use case. - :issue:`WT-6872` Replace the yield instructions with an ISB - :issue:`WT-6875` Remove legacy import invocation - :issue:`WT-6882` Files created during incremental backup should be copied in full - :issue:`WT-6883` Redo change for breaking up backup ranges and fix for EOF +- :issue:`WT-6894` Implement history store cursor prev and next methods +- :issue:`WT-6895` Implement HS cursor update method +- :issue:`WT-6896` Initial implementation of hs cursor remove - :issue:`WT-6916` Create stub subpages for architecture guide - :issue:`WT-6922` Add random consolidate testing to incr_backup - :issue:`WT-6925` Fix incorrect comment diff --git a/source/release-notes/4.4.txt b/source/release-notes/4.4.txt index c3da18dd447..b896169b97e 100644 --- a/source/release-notes/4.4.txt +++ b/source/release-notes/4.4.txt @@ -15,8 +15,8 @@ Minor Releases .. _4.4.3-release-notes: -4.4.3 - Upcoming -~~~~~~~~~~~~~~~~ +4.4.3 - Jan 4, 2021 +~~~~~~~~~~~~~~~~~~~ Issues fixed: @@ -2227,7 +2227,7 @@ Known Issues reads or :ref:`hedged reads ` may not be routed to a near shard replica. - - Fixed in 4.1.1 + - Fixed in 4.4.1 * - 4.4.0 From 4017884146482b002cfa9b5dd56cfe2a1b2f67d7 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 4 Jan 2021 16:44:45 -0500 Subject: [PATCH 64/97] DOCS-14069 finalize and release 4.0.22 changelog --- source/release-notes/4.0.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/release-notes/4.0.txt b/source/release-notes/4.0.txt index f0c151e8c0b..05c565b6961 100644 --- a/source/release-notes/4.0.txt +++ b/source/release-notes/4.0.txt @@ -15,8 +15,8 @@ Minor Releases .. _4.0.22-release-notes: -4.0.22 - Upcoming -~~~~~~~~~~~~~~~~~ +4.0.22 - Jan 4, 2021 +~~~~~~~~~~~~~~~~~~~~ Issues fixed: From a402645c50fd06fd64a5baaf7260cb8d02fcfb54 Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Tue, 29 Dec 2020 14:40:23 -0500 Subject: [PATCH 65/97] DOCS-13985 clarifies when compound indexes can contain a hashed index field --- source/core/index-compound.txt | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/source/core/index-compound.txt b/source/core/index-compound.txt index 76768bc7027..edece6bce02 100644 --- a/source/core/index-compound.txt +++ b/source/core/index-compound.txt @@ -39,10 +39,22 @@ operation that resembles the following prototype: .. include:: /includes/fact-index-specification-field-value.rst -.. important:: You may not create compound indexes that have - ``hashed`` index type. You will receive an error if you attempt to - create a compound index that includes :doc:`a hashed index - field `. +.. important:: + + Starting in MongoDB 4.4: + + - Compound indexes may contain **a single** :doc:`hashed index field + `. + - You will receive an error if you attempt to create a compound index + that contains more than one :doc:`hashed index field + `. + + In MongoDB 4.2 or earlier: + + - Compound indexes may **not** contain a :doc:`hashed index field + `. + - You will receive an error if you attempt to create a compound index + that contains a :doc:`hashed index field `. Consider a collection named ``products`` that holds documents that resemble the following document: From 63fb637440aac5c65fcd816a8bccb92048e70848 Mon Sep 17 00:00:00 2001 From: Jeff Allen Date: Fri, 8 Jan 2021 11:26:43 -0500 Subject: [PATCH 66/97] (DOCS-11033): Add limitation for 3.2 and earlier multikey indexes --- source/core/index-multikey.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/core/index-multikey.txt b/source/core/index-multikey.txt index cbcce61869d..37e21debc21 100644 --- a/source/core/index-multikey.txt +++ b/source/core/index-multikey.txt @@ -210,6 +210,20 @@ $expr :query:`$expr` does not support multikey indexes. +Indexes Built on MongoDB 3.2 or Earlier +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Indexes built on MongoDB 3.2 or earlier do not contain the necessary +flags to support optimized multikey index use. To benefit from the +performance enhancements of multikey indexes, you must either: + +- Rebuild the older-format indexes on MongoDB 3.4 or later. See + :method:`db.collection.reIndex()`. + +- On a replica set, :doc:`resync the replica set members + ` containing older-format + indexes. + Examples -------- From cb05ef5a689e15810eeb5e5e344a858e9e24eaa2 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 11 Jan 2021 14:49:14 -0500 Subject: [PATCH 67/97] DOCS-14070 refresh 4.4.3 changelog +7d --- source/includes/changelogs/releases/4.4.3.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/includes/changelogs/releases/4.4.3.rst b/source/includes/changelogs/releases/4.4.3.rst index daaf62e8c68..f4217b90fac 100644 --- a/source/includes/changelogs/releases/4.4.3.rst +++ b/source/includes/changelogs/releases/4.4.3.rst @@ -64,6 +64,7 @@ Operations Build and Packaging ~~~~~~~~~~~~~~~~~~~ +- :issue:`SERVER-41262` Decouple compile_all from compile_all_run_unittests_TG to reduce makespan - :issue:`SERVER-52580` Windows mh artifacts missing from 4.4 branch - :issue:`SERVER-52891` Run PPC builds less frequently @@ -94,6 +95,7 @@ Internals - :issue:`SERVER-52646` Validate and possibly fix edge cases in regex rewrite rules for userToDNMapping - :issue:`SERVER-52654` new signing keys not generated by the monitoring-keys-for-HMAC thread - :issue:`SERVER-52666` ycsb is a module and writes to a convenitional location +- :issue:`SERVER-52740` Introduce rhel62-medium distro for non compile tasks with large memory footprint - :issue:`SERVER-52746` Ensure tailable cursor in find_cmd.js is invalidated - :issue:`SERVER-52775` Fix sys-perf module issues - :issue:`SERVER-52806` deb install files assume systemd From e30d35a27134169f09a5d30e8f5c3ca4d795e80f Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Tue, 29 Dec 2020 15:11:22 -0500 Subject: [PATCH 68/97] DOCS-14043 change field to notPrimaryUnacknowledgedWrites --- source/reference/command/serverStatus.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/reference/command/serverStatus.txt b/source/reference/command/serverStatus.txt index 098650bdf92..1dab0421a81 100644 --- a/source/reference/command/serverStatus.txt +++ b/source/reference/command/serverStatus.txt @@ -4007,7 +4007,7 @@ metrics "totalMillis" : }, "notMasterLegacyUnacknowledgedWrites" : , - "notMasterUnacknowledgedWrites" : , + "notPrimaryUnacknowledgedWrites" : , "oplogGetMoresProcessed" : { "num" : , "totalMillis" : @@ -4407,12 +4407,15 @@ metrics .. versionadded:: 4.2 -.. serverstatus:: metrics.repl.network.notMasterUnacknowledgedWrites +.. serverstatus:: metrics.repl.network.notPrimaryUnacknowledgedWrites The number of unacknowledged (``w: 0``) write operations that failed because the current :binary:`~bin.mongod` is not in :replstate:`PRIMARY` state. + This field name was changed in MongoDB 4.4.3. Previously, this field + was named ``notMasterUnacknowledgedWrites``. + .. versionadded:: 4.2 .. serverstatus:: metrics.repl.network.oplogGetMoresProcessed From a0366133891dafcd791b182c470f395c17de89c0 Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Tue, 29 Dec 2020 15:15:42 -0500 Subject: [PATCH 69/97] DOCS-14042 change field to notPrimaryLegacyUnacknowledgedWrites --- .../includes/extracts-server-status-projection-base.yaml | 8 ++++++++ source/reference/command/serverStatus.txt | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/source/includes/extracts-server-status-projection-base.yaml b/source/includes/extracts-server-status-projection-base.yaml index 364b260d54c..855bfdf48d8 100644 --- a/source/includes/extracts-server-status-projection-base.yaml +++ b/source/includes/extracts-server-status-projection-base.yaml @@ -15,6 +15,14 @@ content: | ref: _serverStatus-output-changes content: | + - Starting in MongoDB 4.4.3, {{operationName}}: + + - Changed ``notMasterLegacyUnacknowledgedWrites`` to + :serverstatus:`~metrics.repl.network.notPrimaryLegacyUnacknowledgedWrites` + + - Changed ``notMasterUnacknowledgedWrites`` to + :serverstatus:`~metrics.repl.network.notPrimaryUnacknowledgedWrites` + - Starting in MongoDB 4.4.2, {{operationName}}: - Added new metrics to track use of Aggregation Pipeline methods: diff --git a/source/reference/command/serverStatus.txt b/source/reference/command/serverStatus.txt index 1dab0421a81..1455145283e 100644 --- a/source/reference/command/serverStatus.txt +++ b/source/reference/command/serverStatus.txt @@ -4006,8 +4006,8 @@ metrics "num" : , "totalMillis" : }, - "notMasterLegacyUnacknowledgedWrites" : , "notPrimaryUnacknowledgedWrites" : , + "notPrimaryLegacyUnacknowledgedWrites" : , "oplogGetMoresProcessed" : { "num" : , "totalMillis" : @@ -4399,12 +4399,15 @@ metrics .. versionadded:: 4.4 -.. serverstatus:: metrics.repl.network.notMasterLegacyUnacknowledgedWrites +.. serverstatus:: metrics.repl.network.notPrimaryLegacyUnacknowledgedWrites The number of unacknowledged (``w: 0``) legacy write operations (see :ref:`wp-request-opcodes`) that failed because the current :binary:`~bin.mongod` is not in :replstate:`PRIMARY` state. + This field name was changed in MongoDB 4.4.3. Previously, this field + was named ``notMasterLegacyUnacknowledgedWrites``. + .. versionadded:: 4.2 .. serverstatus:: metrics.repl.network.notPrimaryUnacknowledgedWrites From fcfca6ed1fefd4883cfc61f25e8be3c1d4c90be6 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Tue, 12 Jan 2021 11:39:05 -0500 Subject: [PATCH 70/97] DOCSP-13914 fix broken spidermonkey links, 3.2 and 2.4 legacy --- source/release-notes/2.4-javascript.txt | 4 ++-- source/release-notes/3.2-javascript.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/release-notes/2.4-javascript.txt b/source/release-notes/2.4-javascript.txt index 6cc4ebcf5fd..335bae621e0 100644 --- a/source/release-notes/2.4-javascript.txt +++ b/source/release-notes/2.4-javascript.txt @@ -80,7 +80,7 @@ Removed Non-Standard SpiderMonkey Features ------------------------------------------ V8 does **not** support the following *non-standard* `SpiderMonkey -`_ JavaScript +`_ JavaScript extensions, previously supported by MongoDB's use of SpiderMonkey as its JavaScript engine. @@ -88,7 +88,7 @@ E4X Extensions ~~~~~~~~~~~~~~ V8 does not support the *non-standard* `E4X -`_ extensions. E4X +`_ extensions. E4X provides a native `XML `_ object to the JavaScript language and adds the syntax for embedding diff --git a/source/release-notes/3.2-javascript.txt b/source/release-notes/3.2-javascript.txt index 771c9be9479..bc471987221 100644 --- a/source/release-notes/3.2-javascript.txt +++ b/source/release-notes/3.2-javascript.txt @@ -12,7 +12,7 @@ JavaScript Changes in MongoDB 3.2 In MongoDB 3.2, the javascript engine used for both the :binary:`~bin.mongo` shell and for server-side javascript in :binary:`~bin.mongod` changed from V8 to -`SpiderMonkey `_. +`SpiderMonkey `_. To confirm which JavaScript engine you are using, you can use either :js:func:`interpreterVersion()` method in the :binary:`~bin.mongo` shell and the From b1faa528a6332f257bd5732c1934c41574cf007a Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Tue, 12 Jan 2021 12:01:50 -0500 Subject: [PATCH 71/97] DOCSP-13616 deemphasize alternate windows install method crosslinks --- ...ll-mongodb-enterprise-on-windows-unattended.txt | 10 ++++------ .../install-mongodb-enterprise-on-windows.txt | 14 ++++++-------- .../install-mongodb-on-windows-unattended.txt | 10 ++++------ source/tutorial/install-mongodb-on-windows.txt | 14 ++++++-------- 4 files changed, 20 insertions(+), 28 deletions(-) diff --git a/source/tutorial/install-mongodb-enterprise-on-windows-unattended.txt b/source/tutorial/install-mongodb-enterprise-on-windows-unattended.txt index 8576150e25a..a8387fa29bf 100644 --- a/source/tutorial/install-mongodb-enterprise-on-windows-unattended.txt +++ b/source/tutorial/install-mongodb-enterprise-on-windows-unattended.txt @@ -38,12 +38,10 @@ MongoDB Version Installation Method ~~~~~~~~~~~~~~~~~~~ -This tutorial installs MongoDB on Windows in an unattended fashion using -``msiexec.exe``. Alternatively, you may chose to install MongoDB on -Windows using the default installation wizard. - -|arrow| See :doc:`/tutorial/install-mongodb-enterprise-on-windows` for -instructions. +This tutorial installs MongoDB on Windows using the command-line tool +``msiexec.exe``. To install MongoDB using the graphical MSI Installer +instead, see :doc:`Install MongoDB using the MSI Installer +`. Considerations -------------- diff --git a/source/tutorial/install-mongodb-enterprise-on-windows.txt b/source/tutorial/install-mongodb-enterprise-on-windows.txt index eca5a2b0178..258e1a2f6e5 100644 --- a/source/tutorial/install-mongodb-enterprise-on-windows.txt +++ b/source/tutorial/install-mongodb-enterprise-on-windows.txt @@ -37,14 +37,12 @@ MongoDB Version Installation Method ~~~~~~~~~~~~~~~~~~~ -This tutorial installs MongoDB on Windows using the default installation -wizard. Alternatively, you may chose to install MongoDB on Windows in an -unattended fashion, using ``msiexec.exe`` from the command line -(``cmd.exe``). This is useful for system administrators who wish to -deploy MongoDB using automation. - -|arrow| See :doc:`/tutorial/install-mongodb-enterprise-on-windows-unattended` -for instructions. +This tutorial installs MongoDB on Windows using the default MSI +installation wizard. To install MongoDB using the ``msiexec.exe`` +command-line tool instead, see :doc:`Install MongoDB using msiexec.exe +`. The +``msiexec.exe`` tool is useful for system administrators who wish to +deploy MongoDB in an unattended fashion using automation. Considerations -------------- diff --git a/source/tutorial/install-mongodb-on-windows-unattended.txt b/source/tutorial/install-mongodb-on-windows-unattended.txt index ee3c6fcf49e..08a63020199 100644 --- a/source/tutorial/install-mongodb-on-windows-unattended.txt +++ b/source/tutorial/install-mongodb-on-windows-unattended.txt @@ -34,12 +34,10 @@ MongoDB Version Installation Method ~~~~~~~~~~~~~~~~~~~ -This tutorial installs MongoDB on Windows in an unattended fashion using -``msiexec.exe``. Alternatively, you may chose to install MongoDB on -Windows using the default installation wizard. - -|arrow| See :doc:`/tutorial/install-mongodb-on-windows` for -instructions. +This tutorial installs MongoDB on Windows using the command-line tool +``msiexec.exe``. To install MongoDB using the graphical MSI Installer +instead, see :doc:`Install MongoDB using the MSI Installer +`. Considerations -------------- diff --git a/source/tutorial/install-mongodb-on-windows.txt b/source/tutorial/install-mongodb-on-windows.txt index 7804c47af58..eae45e72cef 100644 --- a/source/tutorial/install-mongodb-on-windows.txt +++ b/source/tutorial/install-mongodb-on-windows.txt @@ -32,14 +32,12 @@ MongoDB Version Installation Method ~~~~~~~~~~~~~~~~~~~ -This tutorial installs MongoDB on Windows using the default installation -wizard. Alternatively, you may chose to install MongoDB on Windows in an -unattended fashion, using ``msiexec.exe`` from the command line -(``cmd.exe``). This is useful for system administrators who wish to -deploy MongoDB using automation. - -|arrow| See :doc:`/tutorial/install-mongodb-on-windows-unattended` for -instructions. +This tutorial installs MongoDB on Windows using the default MSI +installation wizard. To install MongoDB using the ``msiexec.exe`` +command-line tool instead, see :doc:`Install MongoDB using msiexec.exe +`. The +``msiexec.exe`` tool is useful for system administrators who wish to +deploy MongoDB in an unattended fashion using automation. Considerations -------------- From b335602fc7ea4e645d381100dfe4368ac1eee9d9 Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Tue, 29 Dec 2020 13:04:34 -0500 Subject: [PATCH 72/97] DOCS-13883 add random number generator --- source/includes/extracts-agg-operators.yaml | 7 + source/reference/operator/aggregation.txt | 11 +- .../reference/operator/aggregation/rand.txt | 171 ++++++++++++++++++ .../reference/operator/aggregation/sample.txt | 5 + .../operator/query-miscellaneous.txt | 39 ++++ source/reference/operator/query.txt | 57 +++--- source/reference/operator/query/rand.txt | 65 +++++++ 7 files changed, 329 insertions(+), 26 deletions(-) create mode 100644 source/reference/operator/aggregation/rand.txt create mode 100644 source/reference/operator/query-miscellaneous.txt create mode 100644 source/reference/operator/query/rand.txt diff --git a/source/includes/extracts-agg-operators.yaml b/source/includes/extracts-agg-operators.yaml index e08574d4c61..ae7101d16b1 100644 --- a/source/includes/extracts-agg-operators.yaml +++ b/source/includes/extracts-agg-operators.yaml @@ -489,12 +489,19 @@ content: | * - Name - Description + * - :expression:`$rand` + - Returns a random float between 0 and 1 + + .. versionadded:: 4.4.2 + * - :expression:`$sampleRate` - Randomly select documents at a given rate. Although the exact number of documents selected varies on each run, the quantity chosen approximates the sample rate expressed as a percentage of the total number of documents. + + .. versionadded:: 4.4.2 --- ref: agg-operators-objects diff --git a/source/reference/operator/aggregation.txt b/source/reference/operator/aggregation.txt index e2f60776cf9..6549f888671 100644 --- a/source/reference/operator/aggregation.txt +++ b/source/reference/operator/aggregation.txt @@ -647,7 +647,13 @@ Alphabetical Listing of Expression Operators * - :expression:`$radiansToDegrees` - Converts a value from radians to degrees. - + + + * - :expression:`$rand` + + - Returns a random float between 0 and 1. + + .. versionadded:: 4.4.2 * - :expression:`$range` @@ -718,7 +724,8 @@ Alphabetical Listing of Expression Operators chosen approximates the sample rate expressed as a percentage of the total number of documents. - + .. versionadded:: 4.4.2 + * - :expression:`$second` - Returns the seconds for a date as a number between 0 and 60 diff --git a/source/reference/operator/aggregation/rand.txt b/source/reference/operator/aggregation/rand.txt new file mode 100644 index 00000000000..600d546937d --- /dev/null +++ b/source/reference/operator/aggregation/rand.txt @@ -0,0 +1,171 @@ +=================== +$rand (aggregation) +=================== + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +Definition +---------- + +.. expression:: $rand + + .. versionadded:: 4.4.2 + + Returns a random float between 0 and 1 each time it is called. + + :expression:`$rand` has the following syntax: + + .. code-block:: javascript + + { $rand: {} } + + The :expression:`$rand` operator doesn't take any arguments. + +Behavior +-------- +Each time ``$rand`` is called it will return a floating point value +that has up to 17 digits after the decimal point. Trailing 0s are +dropped so the actual number of digits may vary. + +Examples +-------- + +This code initializes a ``randomSamples`` collection with 100 documents +that is used in the following examples. + +.. code-block:: javascript + + N = 100 + bulk = db.randomSamples.initializeUnorderedBulkOp() + for ( i = 0; i < N; i++) { bulk.insert( {_id: i, random: 0 } ) } + bulk.execute() + + +Usage with Update Queries +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``$rand`` operator can be used with update query operations. In +this example :method:`~db.collection.updateMany()` uses the ``$rand`` +operator to insert a different random number into each document +in the ``randomSamples`` collection. + +.. code-block:: javascript + + db.randomSamples.updateMany( + {}, + [ + { $set: { "random": { $rand: {} } } } + ] + ) + +We can use :pipeline:`$project` to see the output. The +:pipeline:`$limit` stage halts the pipeline after the third document. + +.. code-block:: javascript + + db.randomSamples.aggregate( + [ + { $project: {_id: 0, random: 1 } }, + { $limit: 3 } + ] + ) + +The output shows the random values. + +.. code-block:: javascript + :copyable: false + + { "random" : 0.8751284485870464 } + { "random" : 0.515147067802108 } + { "random" : 0.3750004525681561 } + +Rounding to Control the Number of Output Digits +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you want a shorter random value, consider using :expression:`$round`. +Note that the :pipeline:`$set` stage updates the document, if ``$rand`` +is called in a :pipeline:`$project` stage the underlying document is +not modified. + +.. code-block:: javascript + + db.randomSamples.aggregate( + [ + { $match: {} }, + { $set: { rounded: { $round: [ "$random", 4 ] } } }, + { $out: "randomSamples" } + ] + ) + +The :pipeline:`$project` stage displays the original and rounded value +for each document. + +.. code-block:: javascript + + db.randomSamples.aggregate( + [ + { $project: {_id:0, random:1, rounded: 1 } }, + { $limit: 3 } + ] + ) + +The update documents look like this: + +.. code-block:: javascript + :copyable: false + + { "random" : 0.8751284485870464, "rounded" : 0.8751 } + { "random" : 0.515147067802108, "rounded" : 0.5151 } + { "random" : 0.3750004525681561, "rounded" : 0.375 } + +.. note:: + + Like ``$rand``, the value returned by the ``$round`` operator does + not include any trailing 0s so the number of digits returned may + vary. + +Selecting Random Items From a Collection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``$rand`` operator can be used in an aggregation pipeline to select +random documents from a collection. In this example we use ``$rand`` to +select about half the documents in the ``randomSamples`` collection. + +.. code-block:: javascript + + db.randomSamples.aggregate( + [ + { $match: { $expr: { $lt: [0.5, {$rand: {} } ] } } }, + { $count: "numMatches" } + ] + ) + +There are 100 documents in ``randomSamples``. Running the sample code 5 +times produces the following output which approaches the expected value +of 50 matches in a collection this size. + +.. code-block:: javascript + :copyable: false + + { "numMatches" : 49 } + { "numMatches" : 52 } + { "numMatches" : 54 } + { "numMatches" : 48 } + { "numMatches" : 59 } + +.. note:: + + This example shows that the number of documents selected is + different each time. If you need to select an exact number of + documents, consider using :pipeline:`$sample` instead of ``$rand``. + +.. seealso:: + + :query:`$rand (query) <$rand>`, :pipeline:`$sample`, :expression:`$round` + diff --git a/source/reference/operator/aggregation/sample.txt b/source/reference/operator/aggregation/sample.txt index 1ce09b3af4a..c6d1e9ac7bd 100644 --- a/source/reference/operator/aggregation/sample.txt +++ b/source/reference/operator/aggregation/sample.txt @@ -74,3 +74,8 @@ collection: ) The operation returns three random documents. + +.. seealso:: + + :expression:`$rand (aggregation) <$rand>` + diff --git a/source/reference/operator/query-miscellaneous.txt b/source/reference/operator/query-miscellaneous.txt new file mode 100644 index 00000000000..aa2fa515843 --- /dev/null +++ b/source/reference/operator/query-miscellaneous.txt @@ -0,0 +1,39 @@ +============================= +Miscellaneous Query Operators +============================= + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +.. include:: /includes/extracts/operators-toc-explanation.rst + +.. list-table:: + :widths: 25,75 + :header-rows: 1 + + * - Name + + - Description + + * - :query:`$comment` + + - Adds a comment to a query predicate. + + * - :query:`$rand` + + - Generates a random float between 0 and 1. + + .. versionadded:: 4.4.2 + + +.. toctree:: + :titlesonly: + :hidden: + + /reference/operator/query/comment + /reference/operator/query/rand diff --git a/source/reference/operator/query.txt b/source/reference/operator/query.txt index efd83e42d26..14f86bbd4bc 100644 --- a/source/reference/operator/query.txt +++ b/source/reference/operator/query.txt @@ -10,6 +10,7 @@ Query and Projection Operators :depth: 1 :class: singlecol + .. include:: /includes/extracts/operators-toc-explanation.rst .. _query-selectors: @@ -23,6 +24,7 @@ Comparison .. only:: website .. include:: /includes/fact-comparison-order.rst + .. list-table:: :widths: 30,70 :header-rows: 1 @@ -299,64 +301,71 @@ Bitwise /reference/operator/query-bitwise -Comments -~~~~~~~~ + +.. _query-projection-operators: + +Projection Operators +-------------------- .. only:: website .. list-table:: - :widths: 30,70 + :widths: 25,75 :header-rows: 1 * - Name - Description - * - :query:`$comment` + * - :projection:`$` - - Adds a comment to a query predicate. + - Projects the first element in an array that matches the query condition. + * - :projection:`$elemMatch` + + - Projects the first element in an array that matches the specified :projection:`$elemMatch` condition. + + * - :projection:`$meta` + + - Projects the document's score assigned during :query:`$text` operation. + + * - :projection:`$slice` + + - Limits the number of elements projected from an array. Supports skip and limit slices. .. toctree:: :titlesonly: :hidden: - /reference/operator/query/comment + /reference/operator/projection -.. _query-projection-operators: +.. _query-miscelaneous-operators: -Projection Operators --------------------- +Miscellaneous Operators +----------------------- .. only:: website .. list-table:: - :widths: 30,70 + :widths: 25,75 :header-rows: 1 * - Name - Description - * - :projection:`$` - - - Projects the first element in an array that matches the query condition. - - * - :projection:`$elemMatch` - - - Projects the first element in an array that matches the specified :projection:`$elemMatch` condition. - - * - :projection:`$meta` - - - Projects the document's score assigned during :query:`$text` operation. + * - :query:`$comment` - * - :projection:`$slice` + - Adds a comment to a query predicate. - - Limits the number of elements projected from an array. Supports skip and limit slices. + * - :query:`$rand` + - Generates a random float between 0 and 1. .. toctree:: :titlesonly: :hidden: - /reference/operator/projection + /reference/operator/query-miscellaneous + + diff --git a/source/reference/operator/query/rand.txt b/source/reference/operator/query/rand.txt new file mode 100644 index 00000000000..c5af1b5fb32 --- /dev/null +++ b/source/reference/operator/query/rand.txt @@ -0,0 +1,65 @@ +===== +$rand +===== + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +Definition +---------- + +.. query:: $rand + +.. versionadded:: 4.4.2 + +:query:`$rand` returns a random float between 0 and 1. + +:query:`$rand` has the following syntax: + +.. code-block:: javascript + + { $rand: {} } + +Examples +-------- + +This code creates a small collection of 100 documents. We will +use ``$rand`` to select random documents from the collection. + +.. code-block:: javascript + + N = 100 + bulk = db.samples.initializeUnorderedBulkOp() + for (i = 0; i < N; i++) { bulk.insert({_id: i, r: 0}) } + bulk.execute() + +In this example we use ``$rand`` to select about half the documents. + +.. code-block:: javascript + + db.samples.find( + { $expr: { $lt: [0.5, {$rand: {} } ] } } + ).count() + +Running this :dbcommand:`find` operation five times returns five random +values that approach the number 50, which is the expected value for a +collection of this size. For example: + +.. code-block:: javascript + :copyable: false + + 51 + 53 + 49 + 45 + 47 + +.. seealso:: + + :expression:`$rand (aggregation) <$rand>` + From 1e709515d2e8aeb88b11bbeb8f828fc1915cdf74 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 13 Jan 2021 15:12:31 -0500 Subject: [PATCH 73/97] DOCSP-13944 clarify _id resumeToken definition for change streams --- source/reference/change-events.txt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/source/reference/change-events.txt b/source/reference/change-events.txt index 587f3e896fd..c05d2394b45 100644 --- a/source/reference/change-events.txt +++ b/source/reference/change-events.txt @@ -62,8 +62,10 @@ following table describes each field in the change stream response document: - document - .. _change-stream-event-id: - Metadata related to the operation. Acts as the ``resumeToken`` + A :term:`BSON` object which serves as an identifier for the + change stream event. This value is used as the ``resumeToken`` for the ``resumeAfter`` parameter when resuming a change stream. + The ``_id`` object has the following form: .. code-block:: none @@ -72,9 +74,13 @@ following table describes each field in the change stream response document: } The ``_data`` type depends on the MongoDB versions - and, in some cases, the feature compatibility version (fcv) at - the time of the change stream's opening/resumption. For details, - see :ref:`change-stream-resume-token`. + and, in some cases, the :ref:`feature compatibility version (fCV) + ` at the time of the change stream's + opening/resumption. See :ref:`change-stream-resume-token` for the + full list of ``_data`` types. + + See :ref:`change-stream-resume` for an example of resuming a + change stream by ``resumeToken``. * - ``operationType`` - string From 75f8b5a8dd5a327e883cbd60dd28a34148b5bc70 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 13 Jan 2021 16:07:20 -0500 Subject: [PATCH 74/97] DOCS-13981 clarify read preference nearest --- source/includes/read-preference-modes-table.rst | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/source/includes/read-preference-modes-table.rst b/source/includes/read-preference-modes-table.rst index 2fa4ab991cc..d0b1a907f6e 100644 --- a/source/includes/read-preference-modes-table.rst +++ b/source/includes/read-preference-modes-table.rst @@ -34,9 +34,17 @@ :ref:`hedged reads ` on sharded clusters. * - :readmode:`nearest` - - Operations read from the member of the :term:`replica set` with - the least network latency, irrespective of whether that member - is a :term:`primary` or :term:`secondary`. + - Operations read from a random eligible :term:`replica set` + member, irrespective of whether that member is a :term:`primary` + or :term:`secondary`, based on a specified latency threshold. + The operation considers the following when calculating latency: + + - The :urioption:`localThresholdMS` connection string option + - The :ref:`maxStalenessSeconds + ` read preference + option + - Any specified :doc:`tag sets + ` Starting in version 4.4, :readmode:`nearest` supports :ref:`hedged reads ` on sharded clusters From 24ab6968f67d650a0e0cb0f969f3171aa474dacf Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Thu, 14 Jan 2021 11:24:26 -0500 Subject: [PATCH 75/97] DOCS-14121 generate initial changelog for 4.2.12 --- .../includes/changelogs/releases/4.2.12.rst | 84 +++++++++++++++++++ source/release-notes/4.2-changelog.txt | 2 + source/release-notes/4.2.txt | 25 ++++++ 3 files changed, 111 insertions(+) create mode 100644 source/includes/changelogs/releases/4.2.12.rst diff --git a/source/includes/changelogs/releases/4.2.12.rst b/source/includes/changelogs/releases/4.2.12.rst new file mode 100644 index 00000000000..84ef8d5e4fe --- /dev/null +++ b/source/includes/changelogs/releases/4.2.12.rst @@ -0,0 +1,84 @@ +.. _4.2.12-changelog: + +4.2.12 Changelog +---------------- + +Sharding +~~~~~~~~ + +- :issue:`SERVER-46393` Always check client last operation time when computing operationTime to append to the response +- :issue:`SERVER-50900` Disable PeriodicShardedIndexConsistencyChecker for cursor_valid_after_shard_stepdown.js +- :issue:`SERVER-52732` Uptime reporter disables autosplit during ShardingTest initialization +- :issue:`SERVER-53444` Make tests that run removeShard in assert.soon to wait for the state to become "completed" not error on ShardNotFound + +Replication +~~~~~~~~~~~ + +- :issue:`SERVER-49187` Make ReplSetTest .stepUp() robust to election failures. +- :issue:`SERVER-50049` assert.soonNoExcept() should not access TestData.traceExceptions for non-resmoke tests. +- :issue:`SERVER-50416` Change notMasterLegacyUnacknowledgedWrites to notPrimaryLegacyUnacknowledgedWrites in serverStatus +- :issue:`SERVER-50417` Change notMasterUnacknowledgedWrites to notPrimaryUnacknowledgedWrites in serverStatus +- :issue:`SERVER-50869` Background sync may erroneously set applied-through during step-up +- :issue:`SERVER-50901` RollbackTest should wait for secondaries before doing data consistency checks +- :issue:`SERVER-52560` oplog_writes_only_permitted_on_standalone.js must wait for insert to be in stable checkpoint +- :issue:`SERVER-52680` Removed node on startup stuck in STARTUP2 after being re-added into the replica set +- :issue:`SERVER-52744` rollback node's lastApplied > sync source's lastApplied in rollback_after_enabling_majority_reads.js +- :issue:`SERVER-53026` Secondary cannot restart replication +- :issue:`SERVER-53345` Excuse arbiter_new_hostname.js from multiversion tests + +Query +~~~~~ + +- :issue:`SERVER-32960` $mod has inconsistent rounding/truncation behavior +- :issue:`SERVER-40361` Reduce memory footprint of plan cache entries +- :issue:`SERVER-50769` server restarted after expr:{"expr":"_currentApplyOps.getArrayLength() > 0","file":"src/mongo/db/pipeline/document_source_change_stream_transform.cpp","line":535}} + +Aggregation +~~~~~~~~~~~ + +- :issue:`SERVER-34741` Move $match in front of $group if condition is on group key +- :issue:`SERVER-40090` DISTINCT_SCAN in agg is only used when certain format of _id is specified +- :issue:`SERVER-51886` $lookup + $merge pipeline may fail to resolve views correctly when collection names collide + +Storage +~~~~~~~ + +- :issue:`SERVER-47812` Secondaries persist wildcard multikeypaths out of order +- :issue:`SERVER-48471` Hashed indexes may be incorrectly marked multikey and be ineligible as a shard key +- :issue:`SERVER-51858` Investigate queryable issue on 4.0.20 +- :issue:`SERVER-52950` recoverOplogAsStandalone mode must not start oplog truncater thread +- :issue:`SERVER-53703` [4.2] Opening a transaction at the all durable timestamp can go backwards + +Build and Packaging +~~~~~~~~~~~~~~~~~~~ + +:issue:`SERVER-52891` Run PPC builds less frequently + +Internals +~~~~~~~~~ + +- :issue:`SERVER-41836` Log thread Id as part of error in FSM tests +- :issue:`SERVER-43739` SNI name is not set on OSX if allowInvalidHostnames is enabled +- :issue:`SERVER-44375` fix merge_with_drop_shard.js when the curop command fails due to ShardNotFound +- :issue:`SERVER-47863` Initial Sync Progress Metrics +- :issue:`SERVER-48742` Log whenever profiler settings are changed via setProfilingLevel +- :issue:`SERVER-50267` Set output limit for 'rawMongoProgramOutput()' +- :issue:`SERVER-50445` Return the value as double when NumberLong subtraction overflows in ExpressionSubtract +- :issue:`SERVER-51526` Hybrid index builds can miss writes and crash in the event of a well-timed WriteConflictException +- :issue:`SERVER-51607` Upgrade Twisted dependency to at least twisted-19.7.0 +- :issue:`SERVER-52618` Sparse hash index should not be used for equality to null match +- :issue:`SERVER-52646` Validate and possibly fix edge cases in regex rewrite rules for userToDNMapping +- :issue:`SERVER-52654` new signing keys not generated by the monitoring-keys-for-HMAC thread +- :issue:`SERVER-52806` deb install files assume systemd +- :issue:`SERVER-52879` Periodic operation latency spikes every 5 minutes due to closing idle cached WT sessions +- :issue:`SERVER-52919` Wire compression not enabled for initial sync +- :issue:`SERVER-52929` Correctly handle compound indexes with 32 keys +- :issue:`SERVER-52969` Disable Powercyle on non-master branches +- :issue:`SERVER-52975` Fix use of 'onRollback' callback for collection validator options in 'collection_impl.cpp' +- :issue:`SERVER-53233` Fix change_streams_update_lookup_shard_metadata_missing.js [4.2, 4.0] +- :issue:`SERVER-53234` jstests/core/profile2.js fails when background operations are run against test database +- :issue:`WT-6835` Add API to allow consolidating incremental backup info +- :issue:`WT-6839` Add API to query existing incremental backup IDs +- :issue:`WT-6882` Files created during incremental backup should be copied in full +- :issue:`WT-6922` Add random consolidate testing to incr_backup + diff --git a/source/release-notes/4.2-changelog.txt b/source/release-notes/4.2-changelog.txt index f8b0038e3d6..0de491fea59 100644 --- a/source/release-notes/4.2-changelog.txt +++ b/source/release-notes/4.2-changelog.txt @@ -10,6 +10,8 @@ :depth: 1 :class: singlecol +.. include:: /includes/changelogs/releases/4.2.12.rst + .. include:: /includes/changelogs/releases/4.2.11.rst .. include:: /includes/changelogs/releases/4.2.10.rst diff --git a/source/release-notes/4.2.txt b/source/release-notes/4.2.txt index 9fdcee36214..c87f8f41d81 100644 --- a/source/release-notes/4.2.txt +++ b/source/release-notes/4.2.txt @@ -17,6 +17,31 @@ Release Notes for MongoDB 4.2 Minor Releases -------------- +.. _4.2.12-release-notes: + +4.2.12 - Upcoming +~~~~~~~~~~~~~~~~~ + +Issues fixed in 4.2.12: + + +- :issue:`SERVER-40361`: Reduce memory footprint of plan cache entries + +- :issue:`SERVER-47863`: Initial Sync Progress Metrics + +- :issue:`SERVER-48471`: Hashed indexes may be incorrectly marked multikey and be ineligible as a shard key + +- :issue:`SERVER-50769`: server restarted after expr{"expr":"_currentApplyOps.getArrayLength() > 0","file":"src/mongo/db/pipeline/document_source_change_stream_transform.cpp","line":535}} + +- :issue:`SERVER-52654`: new signing keys not generated by the monitoring-keys-for-HMAC thread + +- :issue:`SERVER-52879`: Periodic operation latency spikes every 5 minutes due to closing idle cached WT sessions + +- `All JIRA issues closed in 4.2.12 + `__ + +- :ref:`4.2.12-changelog` + .. _4.2.11-release-notes: 4.2.11 - Nov 18, 2020 From f47e1d8eabe68c1f260d4e02d7d015eaef5b450e Mon Sep 17 00:00:00 2001 From: Jason Price Date: Thu, 17 Dec 2020 09:16:16 -0800 Subject: [PATCH 76/97] DOCS-14051 Documentation for sinh cosh tanh --- config/redirects | 6 + source/includes/extracts-agg-operators.yaml | 12 ++ source/meta/aggregation-quick-reference.txt | 3 + source/reference/operator/aggregation.txt | 18 +- source/reference/operator/aggregation/cos.txt | 2 +- .../reference/operator/aggregation/cosh.txt | 170 +++++++++++++++++ .../reference/operator/aggregation/sinh.txt | 171 ++++++++++++++++++ .../reference/operator/aggregation/tanh.txt | 171 ++++++++++++++++++ 8 files changed, 551 insertions(+), 2 deletions(-) create mode 100644 source/reference/operator/aggregation/cosh.txt create mode 100644 source/reference/operator/aggregation/sinh.txt create mode 100644 source/reference/operator/aggregation/tanh.txt diff --git a/config/redirects b/config/redirects index b8c7cd290cd..6fb667595f0 100644 --- a/config/redirects +++ b/config/redirects @@ -1454,6 +1454,9 @@ raw: /master/release-notes/3.0-general-improvements -> ${base}/release-notes/3.0 [*-v4.0]: /${version}/reference/operator/aggregation/asinh -> ${base}/${version}/reference/operator/aggregation [*-v4.0]: /${version}/reference/operator/aggregation/acosh -> ${base}/${version}/reference/operator/aggregation [*-v4.0]: /${version}/reference/operator/aggregation/atanh -> ${base}/${version}/reference/operator/aggregation +[*-v4.0]: /${version}/reference/operator/aggregation/sinh -> ${base}/${version}/reference/operator/aggregation +[*-v4.0]: /${version}/reference/operator/aggregation/cosh -> ${base}/${version}/reference/operator/aggregation +[*-v4.0]: /${version}/reference/operator/aggregation/tanh -> ${base}/${version}/reference/operator/aggregation [*-v4.0]: /${version}/reference/operator/aggregation/degreesToRadians -> ${base}/${version}/reference/operator/aggregation [*-v4.0]: /${version}/reference/operator/aggregation/radiansToDegrees -> ${base}/${version}/reference/operator/aggregation @@ -1664,6 +1667,9 @@ raw: /v2.8/release-notes/2.8-changes -> ${base}/v3.0/release-notes/3.0 [v3.0-v4.0]: /${version}/reference/operator/aggregation/asinh -> ${base}/${version}/reference/operator/aggregation [v3.0-v4.0]: /${version}/reference/operator/aggregation/acosh -> ${base}/${version}/reference/operator/aggregation [v3.0-v4.0]: /${version}/reference/operator/aggregation/atanh -> ${base}/${version}/reference/operator/aggregation +[v3.0-v4.0]: /${version}/reference/operator/aggregation/sinh -> ${base}/${version}/reference/operator/aggregation +[v3.0-v4.0]: /${version}/reference/operator/aggregation/cosh -> ${base}/${version}/reference/operator/aggregation +[v3.0-v4.0]: /${version}/reference/operator/aggregation/tanh -> ${base}/${version}/reference/operator/aggregation [v3.0-v4.0]: /${version}/reference/operator/aggregation/degreesToRadians -> ${base}/${version}/reference/operator/aggregation [v3.0-v4.0]: /${version}/reference/operator/aggregation/radiansToDegrees -> ${base}/${version}/reference/operator/aggregation diff --git a/source/includes/extracts-agg-operators.yaml b/source/includes/extracts-agg-operators.yaml index ae7101d16b1..b4531152ea8 100644 --- a/source/includes/extracts-agg-operators.yaml +++ b/source/includes/extracts-agg-operators.yaml @@ -46,6 +46,18 @@ content: | - Returns the inverse hyperbolic tangent (hyperbolic arc tangent) of a value in radians. + * - :expression:`$sinh` + - Returns the hyperbolic sine of a value that is measured in + radians. + + * - :expression:`$cosh` + - Returns the hyperbolic cosine of a value that is measured in + radians. + + * - :expression:`$tanh` + - Returns the hyperbolic tangent of a value that is measured in + radians. + * - :expression:`$degreesToRadians` - Converts a value from degrees to radians. diff --git a/source/meta/aggregation-quick-reference.txt b/source/meta/aggregation-quick-reference.txt index 21e795f2958..dbd20acad67 100644 --- a/source/meta/aggregation-quick-reference.txt +++ b/source/meta/aggregation-quick-reference.txt @@ -361,6 +361,7 @@ Index of Expression Operators - :expression:`$cond` - :expression:`$convert` - :expression:`$cos` + - :expression:`$cosh` - :expression:`$dateFromParts` - :expression:`$dateFromString` - :expression:`$dateToParts` @@ -434,6 +435,7 @@ Index of Expression Operators - :expression:`$setIsSubset` - :expression:`$setUnion` - :expression:`$sin` + - :expression:`$sinh` - :expression:`$size` - :expression:`$slice` - :expression:`$split` @@ -450,6 +452,7 @@ Index of Expression Operators - :group:`$sum` - :expression:`$switch` - :expression:`$tan` + - :expression:`$tanh` - :expression:`$toBool` - :expression:`$toDate` - :expression:`$toDecimal` diff --git a/source/reference/operator/aggregation.txt b/source/reference/operator/aggregation.txt index 6549f888671..e6854132ec1 100644 --- a/source/reference/operator/aggregation.txt +++ b/source/reference/operator/aggregation.txt @@ -307,6 +307,10 @@ Alphabetical Listing of Expression Operators - Returns the cosine of a value that is measured in radians. + * - :expression:`$cosh` + + - Returns the hyperbolic cosine of a value that is measured in + radians. * - :expression:`$dateFromParts` @@ -776,6 +780,10 @@ Alphabetical Listing of Expression Operators - Returns the sine of a value that is measured in radians. + * - :expression:`$sinh` + + - Returns the hyperbolic sine of a value that is measured in + radians. * - :expression:`$slice` @@ -880,7 +888,12 @@ Alphabetical Listing of Expression Operators * - :expression:`$tan` - Returns the tangent of a value that is measured in radians. - + + + * - :expression:`$tanh` + + - Returns the hyperbolic tangent of a value that is measured in + radians. * - :expression:`$toBool` @@ -995,6 +1008,7 @@ Alphabetical Listing of Expression Operators /reference/operator/aggregation/cond /reference/operator/aggregation/convert /reference/operator/aggregation/cos + /reference/operator/aggregation/cosh /reference/operator/aggregation/dateFromParts /reference/operator/aggregation/dateToParts /reference/operator/aggregation/dateFromString @@ -1070,6 +1084,7 @@ Alphabetical Listing of Expression Operators /reference/operator/aggregation/setUnion /reference/operator/aggregation/size /reference/operator/aggregation/sin + /reference/operator/aggregation/sinh /reference/operator/aggregation/slice /reference/operator/aggregation/split /reference/operator/aggregation/sqrt @@ -1085,6 +1100,7 @@ Alphabetical Listing of Expression Operators /reference/operator/aggregation/sum /reference/operator/aggregation/switch /reference/operator/aggregation/tan + /reference/operator/aggregation/tanh /reference/operator/aggregation/toBool /reference/operator/aggregation/toDate /reference/operator/aggregation/toDecimal diff --git a/source/reference/operator/aggregation/cos.txt b/source/reference/operator/aggregation/cos.txt index ccf8b298a44..71dd7b4239e 100644 --- a/source/reference/operator/aggregation/cos.txt +++ b/source/reference/operator/aggregation/cos.txt @@ -142,7 +142,7 @@ Example :expression:`$cos` is a 128-bit decimal. - id: radians - name: Sine of Value in Radians + name: Cosine of Value in Radians content: | The ``trigonometry`` collection contains a document that diff --git a/source/reference/operator/aggregation/cosh.txt b/source/reference/operator/aggregation/cosh.txt new file mode 100644 index 00000000000..acfc0051230 --- /dev/null +++ b/source/reference/operator/aggregation/cosh.txt @@ -0,0 +1,170 @@ +=================== +$cosh (aggregation) +=================== + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +.. expression:: $cosh + + .. versionadded:: 4.2 + + Returns the hyperbolic cosine of a value that is measured in radians. + + :expression:`$cosh` has the following syntax: + + .. code-block:: javascript + + { $cosh: } + + :expression:`$cosh` takes any valid :ref:`expression + ` that resolves to a number, measured in + radians. If the expression returns a value in degrees, use the + :expression:`$degreesToRadians` operator to convert the value to + radians. + + By default :expression:`$cosh` returns values as a ``double``. + :expression:`$cosh` can also return values as a :ref:`128-bit decimal + ` if the ```` resolves to a 128-bit + decimal value. + + For more information on expressions, see + :ref:`aggregation-expressions`. + +Behavior +-------- + +``null``, ``NaN``, and ``+/- Infinity`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If the input argument resolves to a value of ``null`` or refers to a +field that is missing, :expression:`$cosh` returns ``null``. If the +argument resolves to ``NaN``, :expression:`$cosh` returns ``NaN``. If +the argument resolves to negative or positive ``Infinity``, +:expression:`$cosh` returns positive ``Infinity``. + +.. list-table:: + :header-rows: 1 + :widths: 50 50 + + * - Example + - Results + + * - ``{ $cosh: NaN }`` + - ``NaN`` + + * - ``{ $cosh: null }`` + - ``null`` + + * - ``{ $cosh: -Infinity }`` + - ``Infinity`` + + * - ``{ $cosh: Infinity }`` + - ``Infinity`` + +Example +------- + +.. tabs:: + + tabs: + + - id: degrees + name: Hyperbolic Cosine of Value in Degrees + content: | + + The following ``trigonometry`` collection contains a document + that stores an ``angle`` value measured in degrees: + + .. code-block:: javascript + + db.trigonometry.insertOne( + { + "_id" : ObjectId( "5c50782193f833234ba90d85" ), + "angle" : NumberDecimal( "53.1301023541559787031443874490659" ) + } + ) + + The following aggregation operation uses the + :expression:`$cosh` expression to calculate the hyperbolic + cosine of ``angle`` and adds it to the input document using the + :pipeline:`$addFields` pipeline stage: + + .. code-block:: javascript + + db.trigonometry.aggregate( [ + { + $addFields : { + "cosh_output" : { $cosh : { $degreesToRadians : "$angle" } } + } + } + ] ) + + The :expression:`$degreesToRadians` expression converts the + ``angle`` in degrees to radians. + + Example output: + + .. code-block:: javascript + :copyable: false + + { + "_id" : ObjectId("5c50782193f833234ba90d85"), + "angle" : NumberDecimal("53.1301023541559787031443874490659"), + "cosh_output" : NumberDecimal("1.461642741099671277595921778079396") + } + + Because ``angle`` is stored as a :ref:`128-bit decimal + `, the :expression:`$cosh` output is also a + 128-bit decimal. + + - id: radians + name: Hyperbolic Cosine of Value in Radians + content: | + + The following ``trigonometry`` collection contains a document + that stores an ``angle`` value measured in radians: + + .. code-block:: javascript + + db.trigonometry.insertOne( + { + "_id" : ObjectId( "5c50782193f833234ba90d15" ), + "angle" : NumberDecimal( "1.6301023541559787031443874490659" ) + } + ) + + The following aggregation operation uses the + :expression:`$cosh` expression to calculate the hyperbolic + cosine of ``angle`` and adds it to the input document using + the :pipeline:`$addFields` pipeline stage: + + .. code-block:: javascript + + db.trigonometry.aggregate( [ + { + $addFields : { + "cosh_output" : { $cosh : "$angle" } + } + } + ] ) + + Example output: + + .. code-block:: javascript + :copyable: false + + { + "_id" : ObjectId("5c50782193f833234ba90d15"), + "angle" : NumberDecimal("1.6301023541559787031443874490659"), + "cosh_output" : NumberDecimal("2.650153334504361016712328539738000") + } + + Because ``angle`` is stored as a :ref:`128-bit decimal + `, the :expression:`$cosh` output is also + a 128-bit decimal. diff --git a/source/reference/operator/aggregation/sinh.txt b/source/reference/operator/aggregation/sinh.txt new file mode 100644 index 00000000000..b8e50d8c485 --- /dev/null +++ b/source/reference/operator/aggregation/sinh.txt @@ -0,0 +1,171 @@ +=================== +$sinh (aggregation) +=================== + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +.. expression:: $sinh + + .. versionadded:: 4.2 + + Returns the hyperbolic sine of a value that is measured in radians. + + :expression:`$sinh` has the following syntax: + + .. code-block:: javascript + + { $sinh: } + + :expression:`$sinh` takes any valid :ref:`expression + ` that resolves to a number, measured in + radians. If the expression returns a value in degrees, use the + :expression:`$degreesToRadians` operator to convert the value to + radians. + + By default :expression:`$sinh` returns values as a ``double``. + :expression:`$sinh` can also return values as a :ref:`128-bit decimal + ` if the ```` resolves to a 128-bit + decimal value. + + For more information on expressions, see + :ref:`aggregation-expressions`. + +Behavior +-------- + +``null``, ``NaN``, and ``+/- Infinity`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If the input argument resolves to a value of ``null`` or refers to a +field that is missing, :expression:`$sinh` returns ``null``. If the +argument resolves to ``NaN``, :expression:`$sinh` returns ``NaN``. If +the argument resolves to negative or positive ``Infinity``, +:expression:`$sinh` returns negative or positive ``Infinity`` +respectively. + +.. list-table:: + :header-rows: 1 + :widths: 50 50 + + * - Example + - Results + + * - ``{ $sinh: NaN }`` + - ``NaN`` + + * - ``{ $sinh: null }`` + - ``null`` + + * - ``{ $sinh: -Infinity }`` + - ``-Infinity`` + + * - ``{ $sinh: Infinity }`` + - ``Infinity`` + +Example +------- + +.. tabs:: + + tabs: + + - id: degrees + name: Hyperbolic Sine of Value in Degrees + content: | + + The following ``trigonometry`` collection contains a document + that stores an ``angle`` value measured in degrees: + + .. code-block:: javascript + + db.trigonometry.insertOne( + { + "_id" : ObjectId( "5c50782193f833234ba90d25" ), + "angle" : NumberDecimal( "53.1301023541559787031443874490659" ) + } + ) + + The following aggregation operation uses the + :expression:`$sinh` expression to calculate the hyperbolic sine + of ``angle`` and adds it to the input document using the + :pipeline:`$addFields` pipeline stage: + + .. code-block:: javascript + + db.trigonometry.aggregate( [ + { + $addFields : { + "sinh_output" : { $sinh : { $degreesToRadians : "$angle" } } + } + } + ] ) + + The :expression:`$degreesToRadians` expression converts the + ``angle`` in degrees to radians. + + Example output: + + .. code-block:: javascript + :copyable: false + + { + "_id" : ObjectId("5c50782193f833234ba90d25"), + "angle" : NumberDecimal("53.1301023541559787031443874490659"), + "sinh_output" : NumberDecimal("1.066020404405732132503284522731829") + } + + Because ``angle`` is stored as a :ref:`128-bit decimal + `, the :expression:`$sinh` output is also a + 128-bit decimal. + + - id: radians + name: Hyperbolic Sine of Value in Radians + content: | + + The following ``trigonometry`` collection contains a document + that stores an ``angle`` value measured in radians: + + .. code-block:: javascript + + db.trigonometry.insertOne( + { + "_id" : ObjectId( "5c50782193f833234ba90d35" ), + "angle" : NumberDecimal( "1.6301023541559787031443874490659" ) + } + ) + + The following aggregation operation uses the + :expression:`$sinh` expression to calculate the hyperbolic sine + of ``angle`` and adds it to the input document using the + :pipeline:`$addFields` pipeline stage: + + .. code-block:: javascript + + db.trigonometry.aggregate( [ + { + $addFields : { + "sinh_output" : { $sinh : "$angle" } + } + } + ] ) + + Example output: + + .. code-block:: javascript + :copyable: false + + { + "_id" : ObjectId("5c50782193f833234ba90d35"), + "angle" : NumberDecimal("1.6301023541559787031443874490659"), + "sinh_output" : NumberDecimal("2.454243813557362033961729701069671") + } + + Because ``angle`` is stored as a :ref:`128-bit decimal + `, the :expression:`$sinh` output is also + a 128-bit decimal. diff --git a/source/reference/operator/aggregation/tanh.txt b/source/reference/operator/aggregation/tanh.txt new file mode 100644 index 00000000000..67ffb41264e --- /dev/null +++ b/source/reference/operator/aggregation/tanh.txt @@ -0,0 +1,171 @@ +=================== +$tanh (aggregation) +=================== + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +.. expression:: $tanh + + .. versionadded:: 4.2 + + Returns the hyperbolic tangent of a value that is measured in + radians. + + :expression:`$tanh` has the following syntax: + + .. code-block:: javascript + + { $tanh: } + + :expression:`$tanh` takes any valid :ref:`expression + ` that resolves to a number, measured in + radians. If the expression returns a value in degrees, use the + :expression:`$degreesToRadians` operator to convert the value to + radians. + + By default :expression:`$tanh` returns values as a ``double``. + :expression:`$tanh` can also return values as a :ref:`128-bit decimal + ` if the ```` resolves to a 128-bit + decimal value. + + For more information on expressions, see + :ref:`aggregation-expressions`. + +Behavior +-------- + +``null``, ``NaN``, and ``+/- Infinity`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If the input argument resolves to a value of ``null`` or refers to a +field that is missing, :expression:`$tanh` returns ``null``. If the +argument resolves to ``NaN``, :expression:`$tanh` returns ``NaN``. If +the argument resolves to negative or positive ``Infinity``, +:expression:`$tanh` returns ``-1`` or ``1`` respectively. + +.. list-table:: + :header-rows: 1 + :widths: 50 50 + + * - Example + - Results + + * - ``{ $tanh: NaN }`` + - ``NaN`` + + * - ``{ $tanh: null }`` + - ``null`` + + * - ``{ $tanh: -Infinity }`` + - ``-1`` + + * - ``{ $tanh: Infinity }`` + - ``1`` + +Example +------- + +.. tabs:: + + tabs: + + - id: degrees + name: Hyperbolic Tangent of Value in Degrees + content: | + + The following ``trigonometry`` collection contains a document + that stores an ``angle`` value measured in degrees: + + .. code-block:: javascript + + db.trigonometry.insertOne( + { + "_id" : ObjectId( "5c50782193f833234ba90d45" ), + "angle" : NumberDecimal( "53.1301023541559787031443874490659" ) + } + ) + + The following aggregation operation uses the + :expression:`$tanh` expression to calculate the hyperbolic + tangent of ``angle`` and adds it to the input document using + the :pipeline:`$addFields` pipeline stage: + + .. code-block:: javascript + + db.trigonometry.aggregate( [ + { + $addFields : { + "tanh_output" : { $tanh : { $degreesToRadians : "$angle" } } + } + } + ] ) + + The :expression:`$degreesToRadians` expression converts the + ``angle`` in degrees to radians. + + Example output: + + .. code-block:: javascript + :copyable: false + + { + "_id" : ObjectId("5c50782193f833234ba90d45"), + "angle" : NumberDecimal("53.1301023541559787031443874490659"), + "tanh_output" : NumberDecimal("0.7293303448445332820512777329448416") + } + + Because ``angle`` is stored as a :ref:`128-bit decimal + `, the :expression:`$tanh` output is also a + 128-bit decimal. + + - id: radians + name: Hyperbolic Tangent of Value in Radians + content: | + + The following ``trigonometry`` collection contains a document + that stores an ``angle`` value measured in radians: + + .. code-block:: javascript + + db.trigonometry.insertOne( + { + "_id" : ObjectId( "5c50782193f833234ba90d55" ), + "angle" : NumberDecimal( "1.6301023541559787031443874490659" ) + } + ) + + The following aggregation operation uses the + :expression:`$tanh` expression to calculate the hyperbolic + tangent of ``angle`` and adds it to the input document using + the :pipeline:`$addFields` pipeline stage: + + .. code-block:: javascript + + db.trigonometry.aggregate( [ + { + $addFields : { + "tanh_output" : { $tanh : "$angle" } + } + } + ] ) + + Example output: + + .. code-block:: javascript + :copyable: false + + { + "_id" : ObjectId("5c50782193f833234ba90d55"), + "angle" : NumberDecimal("1.6301023541559787031443874490659"), + "tanh_output" : NumberDecimal("0.9260761562750713360156803177935379") + } + + Because ``angle`` is stored as a :ref:`128-bit decimal + `, the :expression:`$tanh` output is also + a 128-bit decimal. From e18406475a0163148c1cc721269572d80b6af40d Mon Sep 17 00:00:00 2001 From: Dave Cuthbert Date: Thu, 14 Jan 2021 16:38:50 -0500 Subject: [PATCH 77/97] DOCS-13883 Update left nav index --- source/reference/operator/aggregation.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/source/reference/operator/aggregation.txt b/source/reference/operator/aggregation.txt index e6854132ec1..3cccf8d4bf8 100644 --- a/source/reference/operator/aggregation.txt +++ b/source/reference/operator/aggregation.txt @@ -1065,6 +1065,7 @@ Alphabetical Listing of Expression Operators /reference/operator/aggregation/pow /reference/operator/aggregation/push /reference/operator/aggregation/radiansToDegrees + /reference/operator/aggregation/rand /reference/operator/aggregation/range /reference/operator/aggregation/reduce /reference/operator/aggregation/regexFind From 719001ffefa0c44d3f59190549abbfbac4129543 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Tue, 19 Jan 2021 10:58:04 -0500 Subject: [PATCH 78/97] DOCSP-13999 correct typo cp restore backup --- .../steps-restore-sharded-shard-primary-from-backup.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/includes/steps-restore-sharded-shard-primary-from-backup.yaml b/source/includes/steps-restore-sharded-shard-primary-from-backup.yaml index 90556cbc016..8bcf0f9ba9e 100644 --- a/source/includes/steps-restore-sharded-shard-primary-from-backup.yaml +++ b/source/includes/steps-restore-sharded-shard-primary-from-backup.yaml @@ -88,7 +88,7 @@ content: | .. code-block:: sh - c -a /backup/mongodb/path/to/mongodb /path/to/mongodb + cp -a /backup/mongodb/path/to/mongodb /path/to/mongodb The ``-a`` option recursively copies the contents of the source path to the destination path while preserving From 88d142f5bdcf49314713290f0acd9bf7874d7998 Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Wed, 6 Jan 2021 09:46:41 -0500 Subject: [PATCH 79/97] DOCS-14050 ShardingTaskExecutorPool* params are also applicable to mongod --- source/includes/extracts-4.2-changes.yaml | 19 ++++++++++--------- source/reference/parameters.txt | 12 ++++++------ source/release-notes/4.2.txt | 4 ++-- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/source/includes/extracts-4.2-changes.yaml b/source/includes/extracts-4.2-changes.yaml index 276c6df3c74..8c3d0d93bac 100644 --- a/source/includes/extracts-4.2-changes.yaml +++ b/source/includes/extracts-4.2-changes.yaml @@ -777,15 +777,16 @@ content: | ref: 4.2-changes-mongos-repl-connection-pool content: | Starting in MongoDB 4.2, MongoDB adds the parameter - :parameter:`ShardingTaskExecutorPoolReplicaSetMatching` that - determines the minimum size (can vary during runtime) of the - :binary:`~bin.mongos` instance's connection pools to each member of - the sharded cluster. - - By default, for each replica set in the sharded cluster (i.e. shard - replica set and config servers), :binary:`~bin.mongos` maintains - connection pools to each replica set secondary that are at least - equal to the size of its connection pool to the primary. + :parameter:`ShardingTaskExecutorPoolReplicaSetMatching`. This + parameter determines the minimum size of the + :binary:`~bin.mongod`/:binary:`~bin.mongos` instance's + connection pool to each member of the sharded cluster. This value + can vary during runtime. + + :binary:`~bin.mongod` and :binary:`~bin.mongos` maintain connection + pools to each replica set secondary for every replica set in the + sharded cluster. By default, these pools have a number of connections + that is at least the number of connections to the primary. To modify, see :parameter:`ShardingTaskExecutorPoolReplicaSetMatching`. --- diff --git a/source/reference/parameters.txt b/source/reference/parameters.txt index 7a5351164dd..9537aef7cb3 100644 --- a/source/reference/parameters.txt +++ b/source/reference/parameters.txt @@ -2715,7 +2715,7 @@ Sharding Parameters Default: 300000 (i.e. 5 minutes) - |mongos-only| + |both| Maximum time that :binary:`~bin.mongos` goes without communication to a host before :binary:`~bin.mongos` drops all connections to the host. @@ -2743,7 +2743,7 @@ Sharding Parameters Default: 2 - |mongos-only| + |both| Maximum number of simultaneous initiating connections (including pending connections in setup/refresh state) each TaskExecutor @@ -2769,7 +2769,7 @@ Sharding Parameters Default: 2\ :sup:`64` - 1 - |mongos-only| + |both| Maximum number of outbound connections each TaskExecutor connection pool can open to any given :binary:`~bin.mongod` instance. The maximum @@ -2843,7 +2843,7 @@ Sharding Parameters Default: 60000 (1 minute) - |mongos-only| + |both| Maximum time the :binary:`~bin.mongos` waits before attempting to heartbeat a resting connection in the pool. @@ -2867,7 +2867,7 @@ Sharding Parameters Default: 20000 (20 seconds) - |mongos-only| + |both| Maximum time the :binary:`~bin.mongos` waits for a heartbeat before timing out the heartbeat. @@ -2893,7 +2893,7 @@ Sharding Parameters Default: "matchPrimaryNode" - |mongos-only| + |both| The policy that determines the minimum size limit of the :binary:`~bin.mongos` instance's connection pools to the sharded diff --git a/source/release-notes/4.2.txt b/source/release-notes/4.2.txt index c87f8f41d81..0cdf92c4108 100644 --- a/source/release-notes/4.2.txt +++ b/source/release-notes/4.2.txt @@ -546,8 +546,8 @@ Balancer State and Autosplit .. include:: /includes/extracts/4.2-changes-balancer-autosplit.rst -``mongos`` Connection Pool -~~~~~~~~~~~~~~~~~~~~~~~~~~ +``mongos`` / ``mongod`` Connection Pool +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. include:: /includes/extracts/4.2-changes-mongos-repl-connection-pool.rst From 4a3c77684050c5bcdd6a2157c6935ba1ca9476aa Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Fri, 22 Jan 2021 19:27:58 -0500 Subject: [PATCH 80/97] DOCS-14137 finalize and release 4.2.12 changelog --- source/release-notes/4.2.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/release-notes/4.2.txt b/source/release-notes/4.2.txt index 0cdf92c4108..b40a628c24e 100644 --- a/source/release-notes/4.2.txt +++ b/source/release-notes/4.2.txt @@ -19,8 +19,8 @@ Minor Releases .. _4.2.12-release-notes: -4.2.12 - Upcoming -~~~~~~~~~~~~~~~~~ +4.2.12 - Jan 22, 2021 +~~~~~~~~~~~~~~~~~~~~~ Issues fixed in 4.2.12: From 9c96655facb4c8b269160770e74db3c54a7c3b67 Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Fri, 22 Jan 2021 16:34:22 -0500 Subject: [PATCH 81/97] DOCSP-13698 Index Intersection is rarely chosen by the query planner --- source/core/index-intersection.txt | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/source/core/index-intersection.txt b/source/core/index-intersection.txt index bd2374da44a..b0eaf7c8c16 100644 --- a/source/core/index-intersection.txt +++ b/source/core/index-intersection.txt @@ -10,10 +10,29 @@ Index Intersection :depth: 1 :class: singlecol +.. important:: + + This page documents cases where the :doc:`query optimizer + ` **may** be able to use index intersection. + + In practice, the :doc:`query optimizer ` rarely + selects plans that use index intersection. + + Hash-based index intersection is disabled by default and sort-based + index intersection is disfavored in plan selection. The optimizer + behaves in this fashion in order to prevent bad plan selection. + + Schema designs should not rely on index intersection. Instead, + :doc:`compound indexes ` should be used. + + Future improvements to the query optimizer may allow the system to + better identify cases where an index intersection plan would be + beneficial. + MongoDB can use the intersection of multiple indexes to fulfill -queries. In general, each index intersection -involves two indexes; however, MongoDB can employ multiple/nested index -intersections to resolve a query. +queries. In general, each index intersection involves two indexes; +however, MongoDB can employ multiple/nested index intersections to +resolve a query. To illustrate index intersection, consider a collection ``orders`` that has the following indexes: From b75887010efd5ee9b86ea06a41ce8cdd5fdb7aa5 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 25 Jan 2021 13:47:41 -0500 Subject: [PATCH 82/97] DOCS-14153 remove single CA requirement x509 --- source/includes/fact-ssl-certificate-authorities.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/includes/fact-ssl-certificate-authorities.rst b/source/includes/fact-ssl-certificate-authorities.rst index 70a129f7858..904b71469e3 100644 --- a/source/includes/fact-ssl-certificate-authorities.rst +++ b/source/includes/fact-ssl-certificate-authorities.rst @@ -1,6 +1,6 @@ -For production use, your MongoDB deployment should use valid certificates -generated and signed by a single certificate authority. You or your -organization can generate and maintain an independent certificate -authority, or use certificates generated by a third-party TLS/SSL -vendor. Obtaining and managing certificates is beyond the scope of +For production use, your MongoDB deployment should use valid +certificates generated and signed by a certificate authority. You or +your organization can generate and maintain an independent certificate +authority, or use certificates generated by third-party TLS/SSL +vendors. Obtaining and managing certificates is beyond the scope of this documentation. From 983bead01dba56abcaf281132300be11e5ee356b Mon Sep 17 00:00:00 2001 From: Jason Price Date: Thu, 7 Jan 2021 16:24:27 -0800 Subject: [PATCH 83/97] DOCS-14048 mapReduce refactoring --- source/aggregation.txt | 35 ++++------- source/core/aggregation-pipeline.txt | 60 ++++++++----------- source/core/map-reduce-concurrency.txt | 5 ++ .../core/map-reduce-sharded-collections.txt | 5 ++ source/core/map-reduce.txt | 13 +--- source/includes/examples-map-reduce.rst | 23 ++----- .../fact-use-aggregation-not-map-reduce.rst | 16 +++++ .../aggregation-commands-comparison.txt | 16 ++--- source/reference/command/mapReduce.txt | 25 ++------ .../map-reduce-to-aggregation-pipeline.txt | 29 ++++----- .../method/db.collection.mapReduce.txt | 26 ++------ source/tutorial/map-reduce-examples.txt | 18 +++++- .../perform-incremental-map-reduce.txt | 39 +++++------- source/tutorial/troubleshoot-map-function.txt | 8 +++ .../tutorial/troubleshoot-reduce-function.txt | 8 +++ source/tutorial/use-database-commands.txt | 10 ++-- 16 files changed, 149 insertions(+), 187 deletions(-) create mode 100644 source/includes/fact-use-aggregation-not-map-reduce.rst diff --git a/source/aggregation.txt b/source/aggregation.txt index 764dc9d092b..2ce36218a3a 100644 --- a/source/aggregation.txt +++ b/source/aggregation.txt @@ -41,7 +41,7 @@ transforms the documents into an aggregated result. For example: -In the example, +In the example: .. code-block:: javascript @@ -82,28 +82,6 @@ internal optimization phase. See :ref:`aggregation-pipeline-operators-and-performance` and :doc:`/core/aggregation-pipeline-optimization` for details. -.. _aggregation-map-reduce: - -Map-Reduce ----------- - -.. tip:: - - :doc:`Aggregation pipeline ` - provides better performance and a more coherent interface than - map-reduce. - - For examples of aggregation alternatives to map-reduce operations, - see :doc:`/tutorial/map-reduce-examples`. See also - :doc:`/reference/map-reduce-to-aggregation-pipeline`. - -MongoDB also provides :doc:`map-reduce ` operations -to perform aggregation. Map-reduce uses custom JavaScript functions to -perform the map and reduce operations, as well as the optional -*finalize* operation. - -.. include:: /images/map-reduce.rst - .. _single-purpose-agg-operations: Single Purpose Aggregation Operations @@ -114,11 +92,18 @@ MongoDB also provides :method:`db.collection.estimatedDocumentCount()`, All of these operations aggregate documents from a single collection. While these operations provide simple access to common aggregation -processes, they lack the flexibility and capabilities of the -aggregation pipeline and map-reduce. +processes, they lack the flexibility and capabilities of an aggregation +pipeline. .. include:: /images/distinct.rst +.. _aggregation-map-reduce: + +Map-Reduce +---------- + +.. include:: /includes/fact-use-aggregation-not-map-reduce.rst + Additional Features and Behaviors --------------------------------- diff --git a/source/core/aggregation-pipeline.txt b/source/core/aggregation-pipeline.txt index e01c41fc7ac..db872563f96 100644 --- a/source/core/aggregation-pipeline.txt +++ b/source/core/aggregation-pipeline.txt @@ -29,7 +29,7 @@ results. For example: -In the example, +In the example: .. code-block:: javascript @@ -53,8 +53,8 @@ Pipeline The MongoDB aggregation pipeline consists of :ref:`stages `. Each stage transforms the -documents as they pass through the pipeline. Pipeline stages do not -need to produce one output document for every input document; e.g., +documents as they pass through the pipeline. Pipeline stages do not need +to produce one output document for every input document. For example, some stages may generate new documents or filter out documents. Pipeline stages can appear multiple times in the pipeline with the @@ -98,11 +98,11 @@ by the aggregation process with one exception: :ref:`accumulator ` expressions. The accumulators, used in the :pipeline:`$group` stage, maintain their -state (e.g. totals, maximums, minimums, and related data) as documents -progress through the pipeline. Some accumulators are available in the -:pipeline:`$project` stage; however, when used in the -:pipeline:`$project` stage, the accumulators do not maintain their -state across documents. +state (for example, totals, maximums, minimums, and related data) as +documents progress through the pipeline. Some accumulators are available +in the :pipeline:`$project` stage; however, when used in the +:pipeline:`$project` stage, the accumulators do not maintain their state +across documents. Starting in version 4.4, MongoDB provides the :group:`$accumulator` and :expression:`$function` aggregation operators. These operators provide @@ -194,41 +194,29 @@ pipeline. Considerations -------------- -Sharded Collections -~~~~~~~~~~~~~~~~~~~~ +Aggregation Pipeline Limitations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The aggregation pipeline supports operations on sharded collections. -See :ref:`aggregation-pipeline-sharded-collection`. - -Aggregation Pipeline vs Map-Reduce -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +An aggregation pipeline has some limitations on the value types and +the result size. See :doc:`/core/aggregation-pipeline-limits`. -The aggregation pipeline provides better performance and a more coherent -interface than :doc:`map-reduce `. +Aggregation Pipeline Optimization +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Various map-reduce operations can be rewritten using :doc:`aggregation -pipeline operators `, such as -:pipeline:`$group`, :pipeline:`$merge`, etc. For map-reduce operations -that require custom functionality, MongoDB provides the -:group:`$accumulator` and :expression:`$function` aggregation operators -starting in version 4.4. These operators provide users with the ability -to define custom aggregation expressions in JavaScript. +An aggregation pipeline has an internal optimization phase that provides +improved performance for certain sequences of operators. See +:doc:`/core/aggregation-pipeline-optimization`. -See :doc:`/tutorial/map-reduce-examples` for details. - -Limitations -~~~~~~~~~~~ +Aggregation on Sharded Collections +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Aggregation pipeline have some limitations on value types and result -size. See :doc:`/core/aggregation-pipeline-limits` for details on -limits and restrictions on the aggregation pipeline. +An aggregation pipeline supports operations on sharded collections. +See :ref:`aggregation-pipeline-sharded-collection`. -Pipeline Optimization -~~~~~~~~~~~~~~~~~~~~~ +Aggregation Pipeline as an Alternative to Map-Reduce +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The aggregation pipeline has an internal optimization phase that -provides improved performance for certain sequences of operators. For -details, see :doc:`/core/aggregation-pipeline-optimization`. +.. include:: /includes/fact-use-aggregation-not-map-reduce.rst .. toctree:: :titlesonly: diff --git a/source/core/map-reduce-concurrency.txt b/source/core/map-reduce-concurrency.txt index 63a5dcadf52..619e2791fa7 100644 --- a/source/core/map-reduce-concurrency.txt +++ b/source/core/map-reduce-concurrency.txt @@ -10,6 +10,11 @@ Map-Reduce Concurrency :depth: 1 :class: singlecol +.. admonition:: Aggregation Pipeline as an Alternative to Map-Reduce + :class: note + + .. include:: /includes/fact-use-aggregation-not-map-reduce.rst + The map-reduce operation is composed of many tasks, including reads from the input collection, executions of the ``map`` function, executions of the ``reduce`` function, writes to a temporary collection diff --git a/source/core/map-reduce-sharded-collections.txt b/source/core/map-reduce-sharded-collections.txt index 656f3dede6c..4bf5c0027e5 100644 --- a/source/core/map-reduce-sharded-collections.txt +++ b/source/core/map-reduce-sharded-collections.txt @@ -10,6 +10,11 @@ Map-Reduce and Sharded Collections :depth: 1 :class: singlecol +.. admonition:: Aggregation Pipeline as an Alternative to Map-Reduce + :class: note + + .. include:: /includes/fact-use-aggregation-not-map-reduce.rst + Map-reduce supports operations on sharded collections, both as an input and as an output. This section describes the behaviors of :dbcommand:`mapReduce` specific to sharded collections. diff --git a/source/core/map-reduce.txt b/source/core/map-reduce.txt index 851251088c3..ab4b165b563 100644 --- a/source/core/map-reduce.txt +++ b/source/core/map-reduce.txt @@ -10,19 +10,10 @@ Map-Reduce :depth: 1 :class: singlecol -.. admonition:: Aggregation Pipeline as Alternative +.. admonition:: Aggregation Pipeline as Alternative to Map-Reduce :class: note - :doc:`Aggregation pipeline ` - provides better performance and a more coherent interface than - map-reduce, and various map-reduce operations can be rewritten - using :doc:`aggregation pipeline operators - `, such as :pipeline:`$group`, - :pipeline:`$merge`, :group:`$accumulator`, etc. - - For examples of aggregation alternatives to map-reduce operations, - see :doc:`/tutorial/map-reduce-examples`. See also - :doc:`/reference/map-reduce-to-aggregation-pipeline`. + .. include:: /includes/fact-use-aggregation-not-map-reduce.rst Map-reduce is a data processing paradigm for condensing large volumes of data into useful *aggregated* results. To perform map-reduce diff --git a/source/includes/examples-map-reduce.rst b/source/includes/examples-map-reduce.rst index 1d0f9654b38..42e8a72d96c 100644 --- a/source/includes/examples-map-reduce.rst +++ b/source/includes/examples-map-reduce.rst @@ -4,25 +4,10 @@ Map-Reduce Examples .. map-reduce-document-examples-begin .. map-reduce-document-prototype-begin -.. admonition:: Aggregation Pipeline as Alternative - :class: note - - :doc:`Aggregation pipeline ` provides - better performance and a simpler interface than map-reduce, and - map-reduce expressions can be rewritten using :doc:`aggregation - pipeline operators ` such as - :pipeline:`$group`, :pipeline:`$merge`, and others. - - For map-reduce expressions that require custom functionality, MongoDB - provides the :group:`$accumulator` and :expression:`$function` - aggregation operators starting in version 4.4. These operators - provide the ability to define custom aggregation expressions in - JavaScript. - - The examples in this section include aggregation pipeline - alternatives without custom aggregation expressions. For alternatives - that use custom expressions, see :ref:`Map-Reduce to Aggregation - Pipeline Translation Examples `. +The examples in this section include aggregation pipeline alternatives +without custom aggregation expressions. For alternatives that use custom +expressions, see :ref:`Map-Reduce to Aggregation Pipeline Translation +Examples `. Create a sample collection ``orders`` with these documents: diff --git a/source/includes/fact-use-aggregation-not-map-reduce.rst b/source/includes/fact-use-aggregation-not-map-reduce.rst new file mode 100644 index 00000000000..735157172ff --- /dev/null +++ b/source/includes/fact-use-aggregation-not-map-reduce.rst @@ -0,0 +1,16 @@ +An :doc:`aggregation pipeline ` provides +better performance and usability than a :doc:`map-reduce +` operation. + +Map-reduce operations can be rewritten using :doc:`aggregation pipeline +operators `, such as +:pipeline:`$group`, :pipeline:`$merge`, and others. + +For map-reduce operations that require custom functionality, MongoDB +provides the :group:`$accumulator` and :expression:`$function` +aggregation operators starting in version 4.4. Use these operators to +define custom aggregation expressions in JavaScript. + +For examples of aggregation pipeline alternatives to map-reduce +operations, see :doc:`/reference/map-reduce-to-aggregation-pipeline` and +:doc:`/tutorial/map-reduce-examples`. diff --git a/source/reference/aggregation-commands-comparison.txt b/source/reference/aggregation-commands-comparison.txt index e7f6f98dec6..f291b3e1ebd 100644 --- a/source/reference/aggregation-commands-comparison.txt +++ b/source/reference/aggregation-commands-comparison.txt @@ -10,18 +10,10 @@ Aggregation Commands Comparison :depth: 1 :class: singlecol -.. tip:: +.. admonition:: Aggregation Pipeline as Alternative to Map-Reduce + :class: note - Starting in version 4.4, MongoDB adds the :group:`$accumulator` and - :expression:`$function` aggregation operators. Using - :group:`$accumulator` and :expression:`$function` , - :dbcommand:`mapReduce` expressions can be re-written using the - aggregation operators. - - Even before version 4.4, some map-reduce expressions could also be - rewritten using :doc:`other aggregation pipeline operators - `, such as :pipeline:`$group`, - :pipeline:`$merge`, etc. + .. include:: /includes/fact-use-aggregation-not-map-reduce.rst Aggregation Commands Comparison Table ------------------------------------- @@ -47,7 +39,7 @@ MongoDB aggregation commands. Uses a "pipeline" approach where objects are transformed as they pass through a series of pipeline operators such as - :pipeline:`$group`, :pipeline:`$match`, and :pipeline:`$sort`. + :pipeline:`$group`, :pipeline:`$match`, and :pipeline:`$sort`. See :doc:`/reference/operator/aggregation` for more information on the pipeline operators. diff --git a/source/reference/command/mapReduce.txt b/source/reference/command/mapReduce.txt index bb8c39a5320..f5fec23893e 100644 --- a/source/reference/command/mapReduce.txt +++ b/source/reference/command/mapReduce.txt @@ -10,6 +10,11 @@ mapReduce :depth: 1 :class: singlecol +.. admonition:: Aggregation Pipeline as Alternative to Map-Reduce + :class: note + + .. include:: /includes/fact-use-aggregation-not-map-reduce.rst + Definition ---------- @@ -17,26 +22,6 @@ Definition The :dbcommand:`mapReduce` command allows you to run :term:`map-reduce` aggregation operations over a collection. - - .. admonition:: Aggregation Pipeline as Alternative - :class: note - - :doc:`Aggregation pipeline ` - provides better performance and a more coherent interface than - map-reduce, and map-reduce expressions can be - rewritten using :doc:`aggregation pipeline operators - `, such as :pipeline:`$group`, - :pipeline:`$merge`, etc. - - For map-reduce expressions that require custom functionality, - MongoDB provides the :group:`$accumulator` and - :expression:`$function` aggregation operators starting in version - 4.4. These operators provide users with the ability to define custom - aggregation expressions in JavaScript. - - For examples of aggregation alternatives to map-reduce operations, - see :doc:`/tutorial/map-reduce-examples`. See also - :doc:`/reference/map-reduce-to-aggregation-pipeline`. Syntax ------ diff --git a/source/reference/map-reduce-to-aggregation-pipeline.txt b/source/reference/map-reduce-to-aggregation-pipeline.txt index e014e941bb7..c5f72e37cfd 100644 --- a/source/reference/map-reduce-to-aggregation-pipeline.txt +++ b/source/reference/map-reduce-to-aggregation-pipeline.txt @@ -4,20 +4,21 @@ Map-Reduce to Aggregation Pipeline .. default-domain:: mongodb -Starting in version 4.4, MongoDB adds the :group:`$accumulator` and -:expression:`$function` aggregation operators. These operators provide -users the ability to define custom aggregation expressions. Using these -operations, the map-reduce expressions can be approximately re-written -as in the following table. +An :doc:`aggregation pipeline ` provides +better performance and usability than a :doc:`map-reduce +` operation. -.. note:: +Map-reduce operations can be rewritten using :doc:`aggregation pipeline +operators `, such as +:pipeline:`$group`, :pipeline:`$merge`, and others. - Various map-reduce expressions can be rewritten using - :doc:`aggregation pipeline operators - `, such as :pipeline:`$group`, - :pipeline:`$merge`, etc., without requiring custom functions. +For map-reduce operations that require custom functionality, MongoDB +provides the :group:`$accumulator` and :expression:`$function` +aggregation operators starting in version 4.4. Use these operators to +define custom aggregation expressions in JavaScript. - For examples, see :doc:`/tutorial/map-reduce-examples`. +Map-reduce expressions can be re-written as shown in the following +sections. Map-Reduce to Aggregation Pipeline Translation Table ---------------------------------------------------- @@ -250,9 +251,9 @@ Examples Various map-reduce expressions can be rewritten using :doc:`aggregation pipeline operators `, such as -:pipeline:`$group`, :pipeline:`$merge`, etc., without requiring custom -functions. However, for illustrative purposes, the following examples -provide both alternatives. +:pipeline:`$group`, :pipeline:`$merge`, and others, without requiring +custom functions. However, for illustrative purposes, the following +examples provide both alternatives. .. _mr-to-agg-examples1: diff --git a/source/reference/method/db.collection.mapReduce.txt b/source/reference/method/db.collection.mapReduce.txt index 2c12e736b55..a2e1f38a34b 100644 --- a/source/reference/method/db.collection.mapReduce.txt +++ b/source/reference/method/db.collection.mapReduce.txt @@ -10,34 +10,18 @@ db.collection.mapReduce() :depth: 1 :class: singlecol -.. method:: db.collection.mapReduce(map,reduce, { }) +.. admonition:: Aggregation Pipeline as Alternative to Map-Reduce + :class: note + + .. include:: /includes/fact-use-aggregation-not-map-reduce.rst +.. method:: db.collection.mapReduce(map,reduce, { }) .. include:: /includes/fact-mongo-shell-method.rst The :method:`db.collection.mapReduce()` method provides a wrapper around the :dbcommand:`mapReduce` command. - .. admonition:: Aggregation Pipeline as Alternative - :class: note - - :doc:`Aggregation pipeline ` - provides better performance and a more coherent interface than - map-reduce, and map-reduce expressions can be - rewritten using :doc:`aggregation pipeline operators - `, such as :pipeline:`$group`, - :pipeline:`$merge`, etc. - - For map-reduce expressions that require custom functionality, - MongoDB provides the :group:`$accumulator` and - :expression:`$function` aggregation operators starting in version - 4.4. These operators provide users with the ability to define custom - aggregation expressions in JavaScript. - - For examples of aggregation alternatives to map-reduce operations, - see :doc:`/tutorial/map-reduce-examples`. See also - :doc:`/reference/map-reduce-to-aggregation-pipeline`. - .. note:: .. include:: /includes/extracts/views-unsupported-mapReduce.rst diff --git a/source/tutorial/map-reduce-examples.txt b/source/tutorial/map-reduce-examples.txt index 125b96624f0..d68844c7c9c 100644 --- a/source/tutorial/map-reduce-examples.txt +++ b/source/tutorial/map-reduce-examples.txt @@ -10,9 +10,25 @@ Map-Reduce Examples :depth: 1 :class: singlecol +.. admonition:: Aggregation Pipeline as Alternative to Map-Reduce + :class: note + + An :doc:`aggregation pipeline ` provides + better performance and usability than a :doc:`map-reduce + ` operation. + + Map-reduce operations can be rewritten using :doc:`aggregation + pipeline operators `, such as + :pipeline:`$group`, :pipeline:`$merge`, and others. + + For map-reduce operations that require custom functionality, MongoDB + provides the :group:`$accumulator` and :expression:`$function` + aggregation operators starting in version 4.4. Use these operators to + define custom aggregation expressions in JavaScript. + In the :binary:`~bin.mongo` shell, the :method:`db.collection.mapReduce()` method is a wrapper around the :dbcommand:`mapReduce` command. The -following examples use the :method:`db.collection.mapReduce()` method: +following examples use the :method:`db.collection.mapReduce()` method. .. include:: /includes/examples-map-reduce.rst :start-after: map-reduce-document-prototype-begin diff --git a/source/tutorial/perform-incremental-map-reduce.txt b/source/tutorial/perform-incremental-map-reduce.txt index d98a5984d81..48f2d3586a7 100644 --- a/source/tutorial/perform-incremental-map-reduce.txt +++ b/source/tutorial/perform-incremental-map-reduce.txt @@ -10,26 +10,14 @@ Perform Incremental Map-Reduce :depth: 1 :class: singlecol - -.. admonition:: Aggregation Pipeline as Alternative +.. admonition:: Aggregation Pipeline as Alternative to Map-Reduce :class: note - :doc:`Aggregation pipeline ` - provides better performance and a more coherent interface than - map-reduce. - - Various map-reduce operations can be rewritten using - :doc:`aggregation pipeline operators - `, such as :pipeline:`$group`, - :pipeline:`$merge`, etc. For map-reduce operations that require - custom functionality, MongoDB provides the :group:`$accumulator` and - :expression:`$function` aggregation operators starting in version - 4.4. + .. include:: /includes/fact-use-aggregation-not-map-reduce.rst - The example below includes aggregation pipeline alternative without - requiring custom function. - - For examples using the custom aggregation function, see + This section has an example aggregation pipeline alternative to + map-reduce that does not use a custom function. For an example that + uses a custom function, see :doc:`/reference/map-reduce-to-aggregation-pipeline`. To perform map-reduce operations, MongoDB provides the @@ -45,7 +33,7 @@ To perform incremental map-reduce: #. Run a map-reduce job over the current collection and output the result to a separate collection. -#. When you have more data to process, run subsequent map-reduce job +#. When you have more data to process, run subsequent map-reduce jobs with: - the ``query`` parameter that specifies conditions that match @@ -151,7 +139,7 @@ Run the first map-reduce operation as follows: db.session_stats.find().sort( { _id: 1 } ) - The operation returns the following document: + The operation returns the following documents: .. code-block:: javascript :copyable: false @@ -201,7 +189,7 @@ Query the ``session_stats`` collection to verify the results: db.session_stats.find().sort( { _id: 1 } ) -The operation returns the following document: +The operation returns the following documents: .. code-block:: javascript :copyable: false @@ -214,7 +202,12 @@ The operation returns the following document: Aggregation Alternative ----------------------- -Prereq: Set up the collection to its original state: +As an alternative to map-reduce, you can use an :doc:`aggregation +pipeline ` that combines :pipeline:`$group` +and :pipeline:`$merge` stages to achieve the same result in a more +flexible operation. + +Recreate the ``usersessions`` collection: .. code-block:: javascript @@ -296,7 +289,7 @@ map-reduce example without defining custom functions: db.session_stats_agg.find().sort( { _id: 1 } ) - The operation returns the following document: + The operation returns the following documents: .. code-block:: javascript :copyable: false @@ -343,7 +336,7 @@ map-reduce example without defining custom functions: db.session_stats_agg.find().sort( { _id: 1 } ) - The operation returns the following document: + The operation returns the following documents: .. code-block:: javascript :copyable: false diff --git a/source/tutorial/troubleshoot-map-function.txt b/source/tutorial/troubleshoot-map-function.txt index 4f8140af50a..c1385e4babd 100644 --- a/source/tutorial/troubleshoot-map-function.txt +++ b/source/tutorial/troubleshoot-map-function.txt @@ -10,6 +10,14 @@ Troubleshoot the Map Function :depth: 1 :class: singlecol +.. admonition:: Aggregation Pipeline as Alternative to Map-Reduce + :class: note + + .. include:: /includes/fact-use-aggregation-not-map-reduce.rst + + An :doc:`aggregation pipeline ` is also + easier to troubleshoot than a map-reduce operation. + The ``map`` function is a JavaScript function that associates or “maps” a value with a key and emits the key and value pair during a :doc:`map-reduce ` operation. diff --git a/source/tutorial/troubleshoot-reduce-function.txt b/source/tutorial/troubleshoot-reduce-function.txt index b59c70af961..b4b0bd72c8d 100644 --- a/source/tutorial/troubleshoot-reduce-function.txt +++ b/source/tutorial/troubleshoot-reduce-function.txt @@ -10,6 +10,14 @@ Troubleshoot the Reduce Function :depth: 1 :class: singlecol +.. admonition:: Aggregation Pipeline as Alternative to Map-Reduce + :class: note + + .. include:: /includes/fact-use-aggregation-not-map-reduce.rst + + An :doc:`aggregation pipeline ` is also + easier to troubleshoot than a map-reduce operation. + The ``reduce`` function is a JavaScript function that “reduces” to a single object all the values associated with a particular key during a :doc:`map-reduce ` operation. The ``reduce`` function diff --git a/source/tutorial/use-database-commands.txt b/source/tutorial/use-database-commands.txt index 2859d5f06db..10d22b89341 100644 --- a/source/tutorial/use-database-commands.txt +++ b/source/tutorial/use-database-commands.txt @@ -13,9 +13,9 @@ Use Database Commands :class: singlecol The MongoDB command interface provides access to all :term:`non CRUD -` database operations. Fetching server stats, initializing a -replica set, and running a map-reduce job are all accomplished with -commands. +` database operations. Fetching server statistics, initializing a +replica set, and running an aggregation pipeline or map-reduce job are +all accomplished with commands. See :doc:`/reference/command` for list of all commands sorted by function. @@ -39,7 +39,7 @@ Issue Commands The :binary:`~bin.mongo` shell provides a helper method for running commands called :method:`db.runCommand()`. The following operation in -:binary:`~bin.mongo` runs the above command: +:binary:`~bin.mongo` runs the previous command: .. code-block:: javascript @@ -65,7 +65,7 @@ more information on operation termination. --------------------------- You must run some commands on the :term:`admin database`. Normally, -these operations resemble the followings: +these operations resemble the following: .. code-block:: javascript From fe95d92abdbd1aca6c2e08a932bd538780a2ec2b Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 27 Jan 2021 16:04:28 -0500 Subject: [PATCH 84/97] DOCSP-14170 clarify TTL index requirements --- source/core/index-ttl.txt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/source/core/index-ttl.txt b/source/core/index-ttl.txt index 5149f49bca7..39ef6c1a8a4 100644 --- a/source/core/index-ttl.txt +++ b/source/core/index-ttl.txt @@ -29,14 +29,15 @@ of time or at a specific clock time. Data expiration is useful for certain types like machine generated event data, logs, and session information that only need to persist in a database for a finite amount of time. -To create a TTL index, use the :method:`db.collection.createIndex()` -method with the ``expireAfterSeconds`` option on a field whose value is -either a :ref:`date ` or an array that -contains :ref:`date values `. +To create a TTL index, use the :method:`~db.collection.createIndex()` +method on a field whose value is either a :ref:`date +` or an array that contains :ref:`date values +`, and specify the ``expireAfterSeconds`` +option with the desired TTL value in seconds. For example, to create a TTL index on the ``lastModifiedDate`` field of -the ``eventlog`` collection, use the following operation in the -:binary:`~bin.mongo` shell: +the ``eventlog`` collection, with a TTL value of ``3600`` seconds, use +the following operation in the :binary:`~bin.mongo` shell: .. code-block:: javascript From 6f86246312516dd6d9e1aecf525ef0f461ee8dc0 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Wed, 27 Jan 2021 12:22:59 -0500 Subject: [PATCH 85/97] DOCSP-14120 add macos security note mongo shell --- .../extracts-macos-prevent-from-launch.yaml | 14 ++++++++++++ .../extracts-macos-prevent-launch-base.yaml | 14 ++++++++++++ source/includes/fact-download-mongo-shell.rst | 5 +++++ source/includes/steps-run-mongodb-on-osx.yaml | 22 ++----------------- source/mongo.txt | 7 ++++++ source/tutorial/install-mongodb-on-os-x.txt | 22 ++----------------- 6 files changed, 44 insertions(+), 40 deletions(-) create mode 100644 source/includes/extracts-macos-prevent-from-launch.yaml create mode 100644 source/includes/extracts-macos-prevent-launch-base.yaml diff --git a/source/includes/extracts-macos-prevent-from-launch.yaml b/source/includes/extracts-macos-prevent-from-launch.yaml new file mode 100644 index 00000000000..6d0518c441c --- /dev/null +++ b/source/includes/extracts-macos-prevent-from-launch.yaml @@ -0,0 +1,14 @@ +ref: macos-prevent-launch-mongod +source: + ref: _macos-prevent-launch + file: extracts-macos-prevent-launch-base.yaml +replacement: + binary_name: ":binary:`~bin.mongod`" +--- +ref: macos-prevent-launch-mongo +source: + ref: _macos-prevent-launch + file: extracts-macos-prevent-launch-base.yaml +replacement: + binary_name: "the :binary:`~bin.mongo` shell" +... diff --git a/source/includes/extracts-macos-prevent-launch-base.yaml b/source/includes/extracts-macos-prevent-launch-base.yaml new file mode 100644 index 00000000000..9950caae6af --- /dev/null +++ b/source/includes/extracts-macos-prevent-launch-base.yaml @@ -0,0 +1,14 @@ +ref: _macos-prevent-launch +content: | + macOS may prevent {{binary_name}} from running after installation. If + you receive a security error when starting {{binary_name}} + indicating that the developer could not be identified or verified, + do the following to grant {{binary_name}} access to run: + + - Open *System Preferences* + - Select the *Security and Privacy* pane. + - Under the *General* tab, click the button to the right of the + message about {{binary_name}}, labelled either :guilabel:`Open + Anyway` or :guilabel:`Allow Anyway` depending on your version of + macOS. +... diff --git a/source/includes/fact-download-mongo-shell.rst b/source/includes/fact-download-mongo-shell.rst index ca8c57f9672..0954611b0da 100644 --- a/source/includes/fact-download-mongo-shell.rst +++ b/source/includes/fact-download-mongo-shell.rst @@ -47,3 +47,8 @@ a standalone package by following these steps: 4. Copy the :binary:`~bin.mongo` shell from the archive to a location on your filesystem. + +For additional installation guidance specific to your platform, or to +install the :binary:`~bin.mongo` shell as part of a MongoDB Server +installation, see the :doc:`installation guide for your platform +`. diff --git a/source/includes/steps-run-mongodb-on-osx.yaml b/source/includes/steps-run-mongodb-on-osx.yaml index 261279dcf78..a18e9208ac3 100644 --- a/source/includes/steps-run-mongodb-on-osx.yaml +++ b/source/includes/steps-run-mongodb-on-osx.yaml @@ -80,16 +80,7 @@ post: | .. admonition:: macOS Prevents ``mongod`` From Opening :class: note - macOS may prevent ``mongod`` from running after installation. If - you receive a security error when starting ``mongod`` - indicating that the developer could not be identified or verified, - do the following to grant ``mongod`` access to run: - - - Open *System Preferences* - - Select the *Security and Privacy* pane. - - Under the *General* tab, click the button to the right of the - message about ``mongod``, labelled either :guilabel:`Open Anyway` - or :guilabel:`Allow Anyway` depending on your version of macOS. + .. include:: /includes/extracts/macos-prevent-launch-mongod.rst # End-for-getting-started-guide --- @@ -123,16 +114,7 @@ post: | .. admonition:: macOS Prevents ``mongo`` From Opening :class: note - macOS may prevent ``mongo`` from running after installation. If - you receive a security error when starting ``mongo`` - indicating that the developer could not be identified or verified, - do the following to grant ``mongo`` access to run: - - - Open *System Preferences* - - Select the *Security and Privacy* pane. - - Under the *General* tab, click the button to the right of the - message about ``mongo``, labelled either :guilabel:`Open Anyway` - or :guilabel:`Allow Anyway` depending on your version of macOS. + .. include:: /includes/extracts/macos-prevent-launch-mongo.rst For more information on connecting using the :binary:`~bin.mongo` shell, such as to connect to a :binary:`~bin.mongod` instance running diff --git a/source/mongo.txt b/source/mongo.txt index c050e98483b..1af0424700e 100644 --- a/source/mongo.txt +++ b/source/mongo.txt @@ -56,6 +56,13 @@ Prerequisites can copy the ``mongo`` shell to a location on your filesystem that is already present in your ``PATH``, such as ``/usr/bin`` on Linux. +macOS Security Verification +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +*For macOS users:* + +.. include:: /includes/extracts/macos-prevent-launch-mongo.rst + Local MongoDB Instance on Default Port ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/tutorial/install-mongodb-on-os-x.txt b/source/tutorial/install-mongodb-on-os-x.txt index 4e6a9510d8c..4d66d3beb60 100644 --- a/source/tutorial/install-mongodb-on-os-x.txt +++ b/source/tutorial/install-mongodb-on-os-x.txt @@ -204,16 +204,7 @@ this file as well. .. admonition:: macOS Prevents ``mongod`` From Opening :class: note - macOS may prevent ``mongod`` from running after installation. If - you receive a security error when starting ``mongod`` - indicating that the developer could not be identified or verified, - do the following to grant ``mongod`` access to run: - - - Open *System Preferences* - - Select the *Security and Privacy* pane. - - Under the *General* tab, click the button to the right of the - message about ``mongod``, labelled either :guilabel:`Open Anyway` - or :guilabel:`Allow Anyway` depending on your version of macOS. + .. include:: /includes/extracts/macos-prevent-launch-mongod.rst To verify that MongoDB is running, perform one of the following: @@ -250,16 +241,7 @@ running instance. From a new terminal, issue the following: .. admonition:: macOS Prevents ``mongo`` From Opening :class: note - macOS may prevent ``mongo`` from running after installation. If - you receive a security error when starting ``mongo`` - indicating that the developer could not be identified or verified, - do the following to grant ``mongo`` access to run: - - - Open *System Preferences* - - Select the *Security and Privacy* pane. - - Under the *General* tab, click the button to the right of the - message about ``mongo``, labelled either :guilabel:`Open Anyway` - or :guilabel:`Allow Anyway` depending on your version of macOS. + .. include:: /includes/extracts/macos-prevent-launch-mongo.rst For information on CRUD (Create,Read,Update,Delete) operations, see: From d93d382eb2b5e026b14982975501824112baeeb0 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Fri, 29 Jan 2021 16:10:34 -0500 Subject: [PATCH 86/97] DOCS-14070 refresh 4.4.3 changelog --- config/build_conf.yaml | 2 +- source/includes/changelogs/releases/4.4.3.rst | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/config/build_conf.yaml b/config/build_conf.yaml index e67c1675b49..90803dfbb25 100644 --- a/config/build_conf.yaml +++ b/config/build_conf.yaml @@ -10,7 +10,7 @@ project: branched: true siteroot: true version: - release: '4.4.2' + release: '4.4.3' branch: '4.4' system: files: diff --git a/source/includes/changelogs/releases/4.4.3.rst b/source/includes/changelogs/releases/4.4.3.rst index f4217b90fac..5f9c4addb19 100644 --- a/source/includes/changelogs/releases/4.4.3.rst +++ b/source/includes/changelogs/releases/4.4.3.rst @@ -27,6 +27,7 @@ Replication - :issue:`SERVER-51333` setFeatureCompatibilityVersion should fail when downgrading from FCV 4.4 to FCV 4.2 with long collection names present - :issue:`SERVER-52560` oplog_writes_only_permitted_on_standalone.js must wait for insert to be in stable checkpoint - :issue:`SERVER-52680` Removed node on startup stuck in STARTUP2 after being re-added into the replica set +- :issue:`SERVER-52744` rollback node's lastApplied > sync source's lastApplied in rollback_after_enabling_majority_reads.js - :issue:`SERVER-53197` Awaitable hello/isMaster appears in slow query log, part 2 Query @@ -90,6 +91,7 @@ Internals - :issue:`SERVER-51796` Missing comma in "Restoring orphaned data file" (22334) log message parameters - :issue:`SERVER-51797` Add task_path_suffix to evergreen.yml - :issue:`SERVER-51818` add name to invariant message in Mutex destructor +- :issue:`SERVER-52530` Mongo v.4.4.1 crash - UnknownError -31803: WT_NOTFOUND - :issue:`SERVER-52586` Disable refine_shard_key_transaction_stress task in sys-perf - :issue:`SERVER-52625` linkbenches write to conventional location - :issue:`SERVER-52646` Validate and possibly fix edge cases in regex rewrite rules for userToDNMapping From bb65eef448ab0a328ec8249917c5ad2c85f21d6c Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 1 Feb 2021 14:04:29 -0500 Subject: [PATCH 87/97] DOCS-14162 generate initial 3.6.22 changelog --- .../includes/changelogs/releases/3.6.22.rst | 42 +++++++++++++++++++ source/release-notes/3.6-changelog.txt | 2 + source/release-notes/3.6.txt | 19 +++++++++ 3 files changed, 63 insertions(+) create mode 100644 source/includes/changelogs/releases/3.6.22.rst diff --git a/source/includes/changelogs/releases/3.6.22.rst b/source/includes/changelogs/releases/3.6.22.rst new file mode 100644 index 00000000000..109041dd242 --- /dev/null +++ b/source/includes/changelogs/releases/3.6.22.rst @@ -0,0 +1,42 @@ +.. _3.6.22-changelog: + +3.6.22 Changelog +---------------- + +Sharding +~~~~~~~~ + +:issue:`SERVER-53182` [v3.6] Omit "versions" from {shardingState: 1} command when not running as a --shardsvr + +Replication +~~~~~~~~~~~ + +- :issue:`SERVER-33747` Arbiter tries to start data replication if cannot find itself in config after restart +- :issue:`SERVER-52680` Removed node on startup stuck in STARTUP2 after being re-added into the replica set +- :issue:`SERVER-53026` Secondary cannot restart replication +- :issue:`SERVER-53345` Excuse arbiter_new_hostname.js from multiversion tests + +Query +~~~~~ + +:issue:`SERVER-32960` $mod has inconsistent rounding/truncation behavior + +Storage +~~~~~~~ + +:issue:`SERVER-52902` Remove assertion !haveJournalFiles() at dur_journal.cpp:265 + +Build and Packaging +~~~~~~~~~~~~~~~~~~~ + +- :issue:`SERVER-32437` Platform Support: add Amazon Linux 2 +- :issue:`SERVER-52854` Fix package test on debian based system in 3.6 + +Internals +~~~~~~~~~ + +- :issue:`SERVER-50445` Return the value as double when NumberLong subtraction overflows in ExpressionSubtract +- :issue:`SERVER-50891` mongod 3.6.20-rc2 core dumps if dbpath DNE or perms block +- :issue:`SERVER-52654` new signing keys not generated by the monitoring-keys-for-HMAC thread +- :issue:`SERVER-52806` deb install files assume systemd + diff --git a/source/release-notes/3.6-changelog.txt b/source/release-notes/3.6-changelog.txt index d39f1361842..20fe09d0727 100644 --- a/source/release-notes/3.6-changelog.txt +++ b/source/release-notes/3.6-changelog.txt @@ -10,6 +10,8 @@ :depth: 1 :class: twocols +.. include:: /includes/changelogs/releases/3.6.22.rst + .. include:: /includes/changelogs/releases/3.6.21.rst .. include:: /includes/changelogs/releases/3.6.20.rst diff --git a/source/release-notes/3.6.txt b/source/release-notes/3.6.txt index 054d7561898..4f4cac7ec46 100644 --- a/source/release-notes/3.6.txt +++ b/source/release-notes/3.6.txt @@ -13,6 +13,25 @@ Release Notes for MongoDB 3.6 Minor Releases -------------- +3.6.22 - Upcoming +~~~~~~~~~~~~~~~~~ + +Issues Fixed: + +- :issue:`SERVER-32437`: Platform Support: add Amazon Linux 2 +- :issue:`SERVER-33747`: Arbiter tries to start data replication if + cannot find itself in config after restart +- :issue:`SERVER-52654`: new signing keys not generated by the + monitoring-keys-for-HMAC thread +- :issue:`SERVER-52680`: Removed node on startup stuck in STARTUP2 after + being re-added into the replica set +- :issue:`SERVER-53026`: Secondary cannot restart replication + +- `All JIRA issues closed in 3.6.22 + `_ + +- :ref:`3.6.22-changelog` + 3.6.21 - Nov 16, 2020 ~~~~~~~~~~~~~~~~~~~~~ From 680cbad9667e4949fd3ded35b2a71b4a1f1eb395 Mon Sep 17 00:00:00 2001 From: Joseph Dougherty Date: Fri, 29 Jan 2021 13:37:20 -0500 Subject: [PATCH 88/97] DOCSP-13618 clarify that shutdown only applies to Linux; kill applies to Linux and macOS --- source/tutorial/manage-mongodb-processes.txt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/source/tutorial/manage-mongodb-processes.txt b/source/tutorial/manage-mongodb-processes.txt index 6ff6f86a97b..50f0b4110b3 100644 --- a/source/tutorial/manage-mongodb-processes.txt +++ b/source/tutorial/manage-mongodb-processes.txt @@ -150,8 +150,9 @@ authentication enabled. Use ``--shutdown`` ~~~~~~~~~~~~~~~~~~ -From the Linux command line, shut down the :binary:`~bin.mongod` using the -:option:`--shutdown ` option in the following command: +Supported on Linux only. From the command line, shut down the +:binary:`~bin.mongod` using the :option:`--shutdown ` +option: .. code-block:: sh @@ -167,8 +168,9 @@ to perform a clean shutdown. Use ``kill`` ~~~~~~~~~~~~ -From the Linux command line, shut down a specific :binary:`~bin.mongod` instance -using one of the following commands: +Supported on Linux and macOS only. From the command line, shut down a +specific :binary:`~bin.mongod` instance using one of the following +commands: .. code-block:: none From f66a11840df264d68c818023d05a4e3bda89b18c Mon Sep 17 00:00:00 2001 From: Chris Cho Date: Tue, 2 Feb 2021 18:09:51 -0500 Subject: [PATCH 89/97] update link and description to drivers landing page --- source/index.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/source/index.txt b/source/index.txt index bad829b374e..dddbe1d9702 100644 --- a/source/index.txt +++ b/source/index.txt @@ -14,7 +14,7 @@ The MongoDB |version| Manual To download MongoDB 4.4, go to the `MongoDB Download Center `_. -Welcome to the MongoDB |version| Manual! MongoDB is a +Welcome to the MongoDB |version| Manual! MongoDB is a document database designed for ease of development and scaling. The Manual introduces key concepts in MongoDB, presents the query language, and provides operational and administrative @@ -30,7 +30,7 @@ database: - MongoDB Enterprise is available as part of the MongoDB Enterprise Advanced subscription and includes comprehensive support for your MongoDB deployment. MongoDB Enterprise also adds enterprise-focused - features such as LDAP and Kerberos support, on-disk encryption, + features such as LDAP and Kerberos support, on-disk encryption, and auditing. MongoDB also offers @@ -51,11 +51,11 @@ following editions. :class: index-table * - :doc:`mongo Shell Edition ` - + `Node.JS Edition `_ - :api:`Python Edition ` - + `C++ Edition `_ - `Java Edition `_ @@ -184,9 +184,8 @@ Additional Resources Enterprise operations management solution for MongoDB: includes Automation, Backup, and Monitoring. - `MongoDB Ecosystem `_ - The documentation available for the drivers, frameworks, tools, - and services for use with MongoDB. + `MongoDB Drivers `_ + The documentation available for the drivers for use with MongoDB. .. _`MongoDB, Inc.`: https://www.mongodb.com?tck=docs_server From eac6fac63de0501b683bef4433310d976cd9549d Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Mon, 1 Feb 2021 14:38:20 -0500 Subject: [PATCH 90/97] DOCS-13741 add warning to ttlMonitorEnabled param --- source/reference/parameters.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source/reference/parameters.txt b/source/reference/parameters.txt index 9537aef7cb3..e3976d2cef1 100644 --- a/source/reference/parameters.txt +++ b/source/reference/parameters.txt @@ -1046,6 +1046,8 @@ General Parameters |mongod-only| + *Default*: ``true`` + To support :doc:`TTL Indexes `, :binary:`~bin.mongod` instances have a background thread that is responsible for deleting documents from collections with TTL indexes. @@ -1065,6 +1067,14 @@ General Parameters mongod --setParameter ttlMonitorEnabled=false + .. important:: + + Do not run production :binary:`~bin.mongod` instances with + ``ttlMonitorEnabled`` disabled, except under guidance from MongoDB + support. Preventing TTL document removal can negatively impact + MongoDB internal system operations that depend on + :doc:`TTL Indexes `. + .. parameter:: tcpFastOpenServer .. versionadded:: 4.4 From b6122810aa743af982b1f5f3d3c446b098b1c430 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Thu, 21 Jan 2021 12:53:12 -0500 Subject: [PATCH 91/97] DOCS-14143,DOCSP-8696,DOCSP-14087 macOS brew conf file location apple silicon --- source/administration/configuration.txt | 19 ++--- source/includes/fact-default-conf-file.rst | 33 +++++++++ source/reference/configuration-options.txt | 12 +--- source/tutorial/install-mongodb-on-os-x.txt | 79 +++++++++++++-------- 4 files changed, 87 insertions(+), 56 deletions(-) create mode 100644 source/includes/fact-default-conf-file.rst diff --git a/source/administration/configuration.txt b/source/administration/configuration.txt index 063ee0c438d..1b2f852da56 100644 --- a/source/administration/configuration.txt +++ b/source/administration/configuration.txt @@ -21,20 +21,9 @@ best-practice configurations for common use cases. While both interfaces provide access to the same collection of options and settings, this document primarily uses the configuration file -interface. If you installed MongoDB with a package manager such as -``yum`` or ``apt`` on Linux, or ``brew`` on macOS, a default -:doc:`configuration file ` has been -provided as part of your installation: +interface. -- On Linux, a default :file:`/etc/mongod.conf` configuration file is - included when using a package manager to install MongoDB. - -- On Windows, a default :file:`/bin/mongod.cfg` - configuration file is included during the installation. - -- On macOS, a default :file:`/usr/local/etc/mongod.conf` - configuration file is included when installing from MongoDB's - official Homebrew tap. +.. include:: /includes/fact-default-conf-file.rst For package installations of MongoDB on Linux or macOS, an initialization script which uses this default configuration file is also @@ -67,14 +56,14 @@ to create your own configuration file. A this document. Once you have created a configuration file, you can start a MongoDB instance with this configuration file by using either the :option:`--config ` or :option:`-f ` -options to :binary:`~bin.mongod`: +options to :binary:`~bin.mongod`. For example, on Linux: .. code-block:: sh mongod --config /etc/mongod.conf mongod -f /etc/mongod.conf -Modify the values in the ``/etc/mongod.conf`` file on your system to +Modify the values in the ``mongod.conf`` file on your system to control the configuration of your database instance. .. _base-config: diff --git a/source/includes/fact-default-conf-file.rst b/source/includes/fact-default-conf-file.rst new file mode 100644 index 00000000000..05c8b55c179 --- /dev/null +++ b/source/includes/fact-default-conf-file.rst @@ -0,0 +1,33 @@ +- If you :doc:`installed MongoDB ` with a package manager + such as ``yum`` or ``apt`` on Linux or ``brew`` on macOS, or with the + MSI installer on Windows, a default :doc:`configuration file + ` has been provided as part of your + installation: + + .. list-table:: + :header-rows: 1 + :widths: 10 25 65 + + * - Platform + - Method + - Configuration File + + * - Linux + - ``apt``, ``yum``, or ``zypper`` Package Manager + - ``/etc/mongod.conf`` + + * - macOS + - ``brew`` Package Manager + - ``/usr/local/etc/mongod.conf`` (on Intel processors), or + + ``/opt/homebrew/etc/mongod.conf`` (on `Apple M1 processors + `__) + + * - Windows + - MSI Installer + - ``\bin\mongod.cfg`` + +- If you :doc:`installed MongoDB ` via a downloaded + ``TGZ`` or ``ZIP`` file, you will need to create your own configuration + file. The :ref:`basic example configuration ` is a good + place to start. diff --git a/source/reference/configuration-options.txt b/source/reference/configuration-options.txt index b15932dae8c..7aa55dd2c8c 100644 --- a/source/reference/configuration-options.txt +++ b/source/reference/configuration-options.txt @@ -31,17 +31,7 @@ Using a configuration file makes managing :binary:`~bin.mongod` and deployments. You can also add comments to the configuration file to explain the server's settings. -.. admonition:: Default Configuration File - :class: note - - - On Linux, a default :file:`/etc/mongod.conf` configuration file is - included when using a package manager to install MongoDB. - - - On Windows, a default :file:`/bin/mongod.cfg` - configuration file is included during the installation. - - - On macOS, a default :file:`/usr/local/etc/mongod.conf` configuration - file is included when installing from MongoDB's official Homebrew tap. +.. include:: /includes/fact-default-conf-file.rst File Format ~~~~~~~~~~~ diff --git a/source/tutorial/install-mongodb-on-os-x.txt b/source/tutorial/install-mongodb-on-os-x.txt index 4d66d3beb60..086f37c5428 100644 --- a/source/tutorial/install-mongodb-on-os-x.txt +++ b/source/tutorial/install-mongodb-on-os-x.txt @@ -86,38 +86,26 @@ macOS does not include the Homebrew ``brew`` package by default. - Install ``brew`` using the official `Homebrew installation instructions `_. -Tap the MongoDB Homebrew Tap -```````````````````````````` - -Tap the -`MongoDB Homebrew Tap `_ to -download the official Homebrew formulae for MongoDB and the Database -Tools. - -- Run the following command in your macOS Terminal: - - .. code-block:: sh - - brew tap mongodb/brew - .. _install: Installing MongoDB {+version+} |edition| Edition ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Follow these steps to install MongoDB |edition| Edition using Homebrew's -``brew`` package manager. +``brew`` package manager. Be sure that you have followed the +:ref:`installation prerequisites ` above before proceeding. -#. Verify that your system meets all the - :ref:`installation prerequisites ` by running the +#. Tap the `MongoDB Homebrew Tap + `_ to download the official + Homebrew formula for MongoDB and the Database Tools, by running the following command in your macOS Terminal: .. code-block:: sh - brew tap | grep mongodb + brew tap mongodb/brew - You should see the MongoDB brew tap listed. If you do not, or you - receive an error, return to the :ref:`osx-prereq` section. + If you have already done this for a previous installation of MongoDB, + you can skip this step. #. To install MongoDB, run the following command in your macOS Terminal application: @@ -142,16 +130,38 @@ The installation includes the following binaries: - The :binary:`~bin.mongos` sharded cluster query router - The :binary:`~bin.mongo` shell -In addition, the installation creates: +In addition, the installation creates the following files and +directories at the location specified below, depending on your Apple +hardware: + +.. list-table:: + :header-rows: 1 + :widths: 20 30 30 + + * - + - Intel Processor + - Apple M1 Processor + + * - :doc:`configuration file ` + - ``/usr/local/etc/mongod.conf`` + - ``/opt/homebrew/etc/mongod.conf`` -- the :doc:`configuration file ` - (``/usr/local/etc/mongod.conf``) + * - :setting:`log directory ` + - ``/usr/local/var/log/mongodb`` + - ``/opt/homebrew/var/log/mongodb`` -- the :setting:`log directory path ` - (``/usr/local/var/log/mongodb``) + * - :setting:`data directory ` + - ``/usr/local/var/mongodb`` + - ``/opt/homebrew/var/mongodb`` -- the :setting:`data directory path ` - (``/usr/local/var/mongodb``) +See `Apple's documentation `__ +for the current list of Apple hardware using the M1 processor. You can +also run the following command to check where ``brew`` has installed +these files and directories: + +.. code-block:: sh + + brew --prefix Starting with MongoDB 4.4.1, the installation also includes the `MongoDB Database Tools `__. @@ -188,15 +198,24 @@ MongoDB as a macOS service, as doing so sets the correct system - To run MongoDB (i.e. the :binary:`~bin.mongod` process) **manually as a background process**, issue the following: - .. code-block:: sh + - For macOS running Intel processors: + + .. code-block:: sh + + mongod --config /usr/local/etc/mongod.conf --fork + + - For macOS running on `Apple M1 processors + `__: + + .. code-block:: sh - mongod --config /usr/local/etc/mongod.conf --fork + mongod --config /opt/homebrew/etc/mongod.conf --fork To stop a :binary:`~bin.mongod` running as a background process, connect to the :binary:`~bin.mongod` from the :program:`mongo` shell, and issue the :dbcommand:`shutdown` command as needed. -Both methods use the :file:`/usr/local/etc/mongod.conf` file created +Both methods use the :file:`mongod.conf` file created during the install. You can add your own MongoDB :doc:`configuration options ` to this file as well. From c5435b61a9dec8ba3488cd15fc1f95e566b94a0e Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Thu, 4 Feb 2021 14:25:38 -0500 Subject: [PATCH 92/97] DOCSP-14358 update changelog script with new component --- config/changelog_conf.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/changelog_conf.yaml b/config/changelog_conf.yaml index 9790fbd7435..afcd702fdad 100644 --- a/config/changelog_conf.yaml +++ b/config/changelog_conf.yaml @@ -47,6 +47,7 @@ groups: - Mobile "Internals": - Testing + - Python tests - Testing Infrastructure - Stability - Performance From 2400c7a0e80df4871f855f85e12eea310848b2ae Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Thu, 4 Feb 2021 16:54:58 -0500 Subject: [PATCH 93/97] DOCSP-14340 unlink section header --- source/release-notes/4.4.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/release-notes/4.4.txt b/source/release-notes/4.4.txt index b896169b97e..f4538e2a22e 100644 --- a/source/release-notes/4.4.txt +++ b/source/release-notes/4.4.txt @@ -2152,8 +2152,8 @@ the query specified on field ``a``: In previous versions of MongoDB, this operation fails because the array field being limited **must** appear in the query document. -:doc:`Changes Affecting Compatibility ` -------------------------------------------------------------------------- +Changes Affecting Compatibility +------------------------------- Some changes can affect compatibility and may require user actions. For a detailed list of compatibility changes, see From 7ffc5cee74319a5abadd3b3f2368dfdc4140a645 Mon Sep 17 00:00:00 2001 From: Andrew Feierabend Date: Thu, 4 Feb 2021 14:13:41 -0500 Subject: [PATCH 94/97] DOCS-14186 generate initial 4.4.4 changelog --- source/includes/changelogs/releases/4.4.4.rst | 156 ++++++++++++++++++ source/release-notes/4.4-changelog.txt | 2 + source/release-notes/4.4.txt | 22 +++ 3 files changed, 180 insertions(+) create mode 100644 source/includes/changelogs/releases/4.4.4.rst diff --git a/source/includes/changelogs/releases/4.4.4.rst b/source/includes/changelogs/releases/4.4.4.rst new file mode 100644 index 00000000000..c3d8457d6ac --- /dev/null +++ b/source/includes/changelogs/releases/4.4.4.rst @@ -0,0 +1,156 @@ +.. _4.4.4-changelog: + +4.4.4 Changelog +--------------- + +Security +~~~~~~~~ + +:issue:`SERVER-49280` Investigate issues with ocspValidationRefreshPeriodSecs + +Sharding +~~~~~~~~ + +- :issue:`SERVER-49713` Skip checking for orphaned documents in shard_removal_triggers_catalog_cache_invalidation.js +- :issue:`SERVER-53236` Disable merge_with_move_primary.js from running on the sharding_csrs_continuous_config_stepdown suite +- :issue:`SERVER-53444` Make tests that run removeShard in assert.soon to wait for the state to become "completed" not error on ShardNotFound +- :issue:`SERVER-53471` Set rangeDeleterBatchSize to 128 + +Replication +~~~~~~~~~~~ + +- :issue:`SERVER-29030` Announce new primary via heartbeat requests +- :issue:`SERVER-50318` Only restart scheduled heartbeats +- :issue:`SERVER-53026` Secondary cannot restart replication +- :issue:`SERVER-53345` Excuse arbiter_new_hostname.js from multiversion tests +- :issue:`SERVER-53609` lastCommittedTransaction section causes frequent schema changes that limit FTDC retention + +Query +~~~~~ + +- :issue:`SERVER-47869` Add diagnostic logging to ClusterCursorManager +- :issue:`SERVER-50769` server restarted after expr:{"expr":"_currentApplyOps.getArrayLength() > 0","file":"src/mongo/db/pipeline/document_source_change_stream_transform.cpp","line":535}} +- :issue:`SERVER-53176` Return an error when commitQuorum includes voting buildIndexes:false members +- :issue:`SERVER-53929` Server crash after invariant failure + +Aggregation +~~~~~~~~~~~ + +- :issue:`SERVER-40090` DISTINCT_SCAN in agg is only used when certain format of _id is specified +- :issue:`SERVER-51886` $lookup + $merge pipeline may fail to resolve views correctly when collection names collide + +Storage +~~~~~~~ + +- :issue:`SERVER-46876` During the eviction pressure, we should quit the compact operation instead of crashing the process +- :issue:`SERVER-48002` Do not enforce DataCorruptionDetected assertion when ignoring prepare conflicts +- :issue:`SERVER-48471` Hashed indexes may be incorrectly marked multikey and be ineligible as a shard key + +WiredTiger +`````````` + +- :issue:`SERVER-52596` Detect memLimitMB in K8S pod and inform WiredTigerCacheSize calculation for pod RAM instead of total system RAM + +Build and Packaging +~~~~~~~~~~~~~~~~~~~ + +:issue:`SERVER-53037` RHEL8.2 arm64 packages have x86_64 in the name + +Internals +~~~~~~~~~ + +- :issue:`SERVER-43904` When stepping down, step up doesn't filter out frozen nodes +- :issue:`SERVER-47030` Fix date_time_support code to not produce exceptions +- :issue:`SERVER-48516` at startup, confirm replica set node with auth can connect to itself +- :issue:`SERVER-48994` LogTransactionOperationsForShardingHandler must use UninterruptibleLockGuard +- :issue:`SERVER-49222` ARM64 support on Amazon Linux 2 +- :issue:`SERVER-49371` Introduce the InlineRecursiveCountingExecutor +- :issue:`SERVER-49495` Fix race in auth_pass_prompt.js +- :issue:`SERVER-50475` mr_noscripting.js can fail spuriously on new mapReduce implementation +- :issue:`SERVER-51337` use-after-move in NetworkInterfaceMock +- :issue:`SERVER-52585` idl_tool.py not setting up buildscript/idl/* dependencies +- :issue:`SERVER-52787` Adjust ocsp_sharding_basic test response validity period +- :issue:`SERVER-52867` Make sure secondary has finished closing connections after being removed before sending new commands in awaitable_hello_on_nodes_with_invalid_configs.js +- :issue:`SERVER-52879` Periodic operation latency spikes every 5 minutes due to closing idle cached WT sessions +- :issue:`SERVER-52919` Wire compression not enabled for initial sync +- :issue:`SERVER-52983` Assertions in initial_sync_replSetGetStatus.js have to account for batch sizes smaller than collectionClonerBatchSize +- :issue:`SERVER-53234` jstests/core/profile2.js fails when background operations are run against test database +- :issue:`SERVER-53323` Run concurrency_simultaneous_replication on large distro on Enterprise Windows (inMemory) buildvariant +- :issue:`SERVER-53376` [4.4] dbHash can live lock an aborting index build +- :issue:`SERVER-53422` [v4.4] Move create_collection.js from noPassthroughWithMongod to noPassthrough +- :issue:`SERVER-53440` [v4.4] plan_cache_drop_database.js assertion too strict +- :issue:`SERVER-53445` [4.4] impose lock acquisition timeout for background validation +- :issue:`SERVER-53559` Stop the background workload in the backup/restore test before adding the node from the backed up data to the replica set +- :issue:`SERVER-53565` Update TPC-C version in sys-perf.yml and perf.yml modules +- :issue:`SERVER-53694` CleanEveryN timing information needs to accounts for hard-coded N +- :issue:`SERVER-53717` Dynamically split large concurrency tasks +- :issue:`SERVER-53780` Fix missing quote in test parameters +- :issue:`SERVER-53841` Additional logging for oplog_rollover.js +- :issue:`SERVER-53844` Ensure insert into new collection is replicated before asserting in initial_sync_drop_against_last_stable.js +- :issue:`SERVER-53960` burn_in_tests tries to run enterprise test against non-enterprise build variant +- :issue:`SERVER-54110` Fix buildscripts_test failures on 4.4 +- :issue:`SERVER-54126` [4.4] buildindexes*.js assumes commitQuorum is always accepted +- :issue:`SERVER-54134` Ignore newer mongo versions on older branches of setup_multiversion_mongodb.py +- :issue:`WT-4625` Add a check for camelCase names +- :issue:`WT-5101` Make Clang Format recognise remaining loop macros +- :issue:`WT-5111` Fix wt2909_checkpoint_integrity and wt3120_filesys so it is natural to run standalone +- :issue:`WT-6309` Add support for start/stop arguments to wt printlog command +- :issue:`WT-6313` Added verify_metadata configuration to the exclusion list when writing to basecfg +- :issue:`WT-6430` Move WT_CONN_SERVER flags into their own field +- :issue:`WT-6432` Add test case to misuse the timestamp API +- :issue:`WT-6504` Don't fallback to onpage value as base value if we see the onpage value in the history store +- :issue:`WT-6567` Write "rollback to stable" subpage for Architecture Guide +- :issue:`WT-6568` Fix split generation use +- :issue:`WT-6605` Enhance rollback-to-stable verbose messaging +- :issue:`WT-6677` Map read committed/uncommitted isolation to read-only transaction +- :issue:`WT-6710` Change the default transaction isolation to snapshot +- :issue:`WT-6711` Add new API WT_SESSION.reset_snapshot to update the snapshot +- :issue:`WT-6717` Restrict usage of LSM to only operate in conjunction with compatible functionality +- :issue:`WT-6740` Fix unintentionally releasing the snapshot by mistreating the recovery session as an eviction session +- :issue:`WT-6743` Save and restore session's data handle during cursor reopen call +- :issue:`WT-6772` Add support for prepared updates in datastore for test_hs09 +- :issue:`WT-6802` Don't set operation timer for internal and reentry api calls +- :issue:`WT-6831` Retry search if it race with prepared update commit/rollback +- :issue:`WT-6846` Initial test program for the new cpp test framework +- :issue:`WT-6848` Split the program into test and framework components +- :issue:`WT-6861` Add the ability to log messages about unexpected timestamp usage +- :issue:`WT-6862` Remove duplicate in statistics descriptions +- :issue:`WT-6863` Reduce code duplication by improving statistics macros +- :issue:`WT-6866` Refactor python backup tests initial base class +- :issue:`WT-6888` WTPERF reports incorrect upper bound item count during populate +- :issue:`WT-6901` Write "cursor" subpage for Architecture Guide +- :issue:`WT-6924` Queue history store pages for urgent eviction when cache pressure is high +- :issue:`WT-6946` Adding test tags to an initial set of test programs +- :issue:`WT-6969` Do not update the existing snapshot for autocommit transactions +- :issue:`WT-6981` Add randomness to Python test suite runs +- :issue:`WT-6983` Make wiredtiger.in text wrapping consistent across Python versions +- :issue:`WT-6990` New cursor debug configuration isn't considered in __wt_cursor_cache_get +- :issue:`WT-6991` Make WT_IS_HS and WT_IS_METADATA consistent - both operating on dhandle +- :issue:`WT-6992` Add timing stress between datastore and history store search +- :issue:`WT-6994` Dump the cursor page whenever a key out order is detected +- :issue:`WT-6996` Fix suite_random.rand32() in python test suite +- :issue:`WT-7020` Assert the previous update timestamp of a key +- :issue:`WT-7025` Coverity: Unused value "op_ts" +- :issue:`WT-7026` Atomically read and set ref->addr in case of race +- :issue:`WT-7027` Run the metadata checkpoint for force_stop at read-committed isolation for incremental backup +- :issue:`WT-7038` Update headers to be C++ compatible +- :issue:`WT-7054` Change the order of key out-of-order prints to avoid race +- :issue:`WT-7065` Add check for WT_DHANDLE_DEAD to assertion +- :issue:`WT-7066` Point README doc link to develop/index.html +- :issue:`WT-7067` Add column store to test_hs01 +- :issue:`WT-7068` Add column store support to test_hs03 +- :issue:`WT-7069` Enable column store configuration to history store +- :issue:`WT-7071` Add column store support to test_hs16 +- :issue:`WT-7084` Fix assert in test code and a comment error +- :issue:`WT-7089` Don't skip checkpointing objects that have obsolete pages +- :issue:`WT-7091` Restrict usage of LSM to only operate in conjunction with compatible incremental backup mechanism +- :issue:`WT-7109` Retain no longer supported configuration options for backward compatibility +- :issue:`WT-7113` Integrate prototype tiered storage code into WT +- :issue:`WT-7114` Revert Makefile code to always run the prototype script +- :issue:`WT-7117` RTS to skip modifies that are more recent than on-disk base update while restoring an update +- :issue:`WT-7121` Include log-structured allocation python tests in WT +- :issue:`WT-7126` Coverity analysis defect 116991: Explicit null dereferenced +- :issue:`WT-7127` Coverity analysis defect 116992: Unchecked return value +- :issue:`WT-7128` Coverity analysis defect 116993: Resource leak +- :issue:`WT-7131` Tiered cursors should return error if configured with zero tiers + diff --git a/source/release-notes/4.4-changelog.txt b/source/release-notes/4.4-changelog.txt index 480d592007e..4079645227a 100644 --- a/source/release-notes/4.4-changelog.txt +++ b/source/release-notes/4.4-changelog.txt @@ -10,6 +10,8 @@ :depth: 1 :class: singlecol +.. include:: /includes/changelogs/releases/4.4.4.rst + .. include:: /includes/changelogs/releases/4.4.3.rst .. include:: /includes/changelogs/releases/4.4.2.rst diff --git a/source/release-notes/4.4.txt b/source/release-notes/4.4.txt index f4538e2a22e..8a77a2c67e9 100644 --- a/source/release-notes/4.4.txt +++ b/source/release-notes/4.4.txt @@ -13,6 +13,28 @@ Release Notes for MongoDB 4.4 Minor Releases -------------- +.. _4.4.4-release-notes: + +4.4.4 - Upcoming +~~~~~~~~~~~~~~~~ + +Issues fixed: + +- :issue:`SERVER-48471`: Hashed indexes may be incorrectly marked + multikey and be ineligible as a shard key +- :issue:`SERVER-50769`: server restarted after + expr{"expr":"_currentApplyOps.getArrayLength() > 0","file":"src/mongo/db/pipeline/document_source_change_stream_transform.cpp","line":535}} +- :issue:`SERVER-52919`: Wire compression not enabled for initial sync +- :issue:`WT-7109`: Retain no longer supported configuration options for + backward compatibility +- :issue:`WT-7117`: RTS to skip modifies that are more recent than + on-disk base update while restoring an update + +- `All JIRA issues closed in 4.4.4 + `_ + +- :ref:`4.4.4-changelog` + .. _4.4.3-release-notes: 4.4.3 - Jan 4, 2021 From 80b852a5bb7769b35d146264985ca5e17e928713 Mon Sep 17 00:00:00 2001 From: Allison Reinheimer Moore Date: Thu, 4 Feb 2021 14:07:57 -0500 Subject: [PATCH 95/97] DOP-1883: adding trailing / to reduce redirect chain probability --- config/redirects | 3172 +++++++++++++++++++++++----------------------- 1 file changed, 1585 insertions(+), 1587 deletions(-) diff --git a/config/redirects b/config/redirects index 6fb667595f0..39ced3d7dee 100644 --- a/config/redirects +++ b/config/redirects @@ -4,865 +4,865 @@ symlink: upcoming -> v4.4 symlink: manual -> v4.4 symlink: v4.4 -> master -[v2.2]: /${version}/core/read-operations-introduction -> ${base}/${version}/core/read-operations -[v2.2]: /${version}/core/write-operations-introduction -> ${base}/${version}/core/write-operations -[v2.2]: /${version}/core/replica-set-primary -> ${base}/${version}/core/replication -[v2.2]: /${version}/core/replica-set-high-availability -> ${base}/${version}/core/replication -[v2.2]: /${version}/core/replica-set-rollbacks -> ${base}/${version}/core/replication -[v2.2]: /${version}/core/replica-set-oplog -> ${base}/${version}/core/replication +[v2.2]: /${version}/core/read-operations-introduction -> ${base}/${version}/core/read-operations/ +[v2.2]: /${version}/core/write-operations-introduction -> ${base}/${version}/core/write-operations/ +[v2.2]: /${version}/core/replica-set-primary -> ${base}/${version}/core/replication/ +[v2.2]: /${version}/core/replica-set-high-availability -> ${base}/${version}/core/replication/ +[v2.2]: /${version}/core/replica-set-rollbacks -> ${base}/${version}/core/replication/ +[v2.2]: /${version}/core/replica-set-oplog -> ${base}/${version}/core/replication/ [v2.2]: /${version}/core/replica-set-architecture-four-members -> ${base}/${version}/administration/replica-set-architectures/ [v2.2]: /${version}/core/replica-set-architecture-geographically-distributed -> ${base}/${version}/administration/replica-set-architectures/ -[v2.2]: /${version}/core/replica-set-architecture-three-members -> ${base}/${version}/core/replica-set-architectures +[v2.2]: /${version}/core/replica-set-architecture-three-members -> ${base}/${version}/core/replica-set-architectures/ [v2.2]: /${version}/core/replica-set-arbiter -> ${base}/${version}/administration/replica-set-architectures/ -[v2.2]: /${version}/core/replica-set-hidden-member -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/core/replica-set-secondary -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/core/replica-set-priority-0-member -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/core/replica-set-delayed-member -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/core/replication-introduction -> ${base}/${version}/replication -[v2.2]: /${version}/core/replica-set-members -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/administration/replica-set-member-configuration-tutorials -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/administration/replica-set-maintenance-tutorials -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/administration/replica-set-deployment-tutorials -> ${base}/${version}/administration/replica-sets -(v2.2-*]: /${version}/release-notes/replica-set-features -> ${base}/${version}/replication -(v2.2-*]: /${version}/core/replication-internals -> ${base}/${version}/core/replication-process -[v2.2]: /${version}/core/replication-process -> ${base}/${version}/core/replication-internals -[v2.2]: /${version}/core/replica-set-sync -> ${base}/${version}/core/replication-internals -[v2.2]: /${version}/core/inter-process-authentication -> ${base}/${version}/administration/replica-sets/#replica-set-security -[v2.2]: /${version}/core/replica-set-elections -> ${base}/${version}/core/replication-internals -[*]: /${version}/reference/mongo-shell-reference -> ${base}/${version}/reference/mongo-shell -[*]: /${version}/reference/method/getShardDistribution -> ${base}/${version}/reference/method/db.collection.getShardDistribution -[*]: /${version}/reference/method/getDB -> ${base}/${version}/reference/method/Mongo.getDB -[*]: /${version}/reference/method/getShardVersion -> ${base}/${version}/reference/method/db.collection.getShardVersion -[*]: /${version}/reference/command/whatsMyUri -> ${base}/${version}/reference/command/whatsmyuri -[*]: /${version}/reference/command/writeBackListen -> ${base}/${version}/reference/command/writebacklisten -[*]: /${version}/reference/command/isdbGrid -> ${base}/${version}/reference/command/isdbgrid -[*]: /${version}/reference/command/emptyCapped -> ${base}/${version}/reference/command/emptycapped -[*]: /${version}/reference/command/printShardingStatus -> ${base}/${version}/reference/method/db.printShardingStatus -[*]: /${version}/administration/sharding-architectures -> ${base}/${version}/core/sharded-cluster-architectures -[*]: /${version}/administration/sharding -> ${base}/${version}/administration/sharded-clusters -[v2.2]: /${version}/core/sharding -> ${base}/${version}/core/sharded-clusters -[v2.2]: /${version}/core/sharding-introduction -> ${base}/${version}/core/sharded-clusters -(v2.2-*]: /${version}/core/sharded-clusters -> ${base}/${version}/core/sharding -[*]: /${version}/core/sharding-internals -> ${base}/${version}/core/sharded-cluster-mechanics -[*]: /${version}/core/sharding-internals/#sharding-internals-shard-keys -> ${base}/${version}/core/sharding-shard-key -(v2.2-*]: /${version}/core/map-reduce/#map-reduce-troubleshooting -> ${base}/${version}/tutorial/troubleshoot-map-function -[v2.2]: /${version}/core/sharded-cluster-components -> ${base}/${version}/core/sharded-clusters -[v2.2]: /${version}/core/sharded-cluster-shards -> ${base}/${version}/core/sharded-clusters -[v2.2]: /${version}/core/sharded-cluster-config-servers -> ${base}/${version}/core/sharded-clusters -[v2.2]: /${version}/core/sharded-cluster-requirements -> ${base}/${version}/core/sharded-clusters -(v2.2-*]: /${version}/core/sharded-cluster-internals -> ${base}/${version}/core/sharding -[v2.2]: /${version}/core/sharded-cluster-operations -> ${base}/${version}/core/sharded-cluster-internals -[*]: /${version}/tutorial/install-mongodb-on-redhat-centos-or-fedora-linux -> ${base}/${version}/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux -[v2.2]: /${version}/release-notes/2.4 -> ${base}/${version}/release-notes -[v2.2]: /${version}/release-notes/2.4-changes -> ${base}/${version}/release-notes -[v2.2]: /${version}/release-notes/2.4-index-types -> ${base}/${version}/release-notes -[v2.2]: /${version}/release-notes/2.4-javascript -> ${base}/${version}/release-notes -[v2.2]: /${version}/release-notes/2.4-overview -> ${base}/${version}/release-notes -[v2.2]: /${version}/release-notes/2.4-upgrade -> ${base}/${version}/release-notes -[v2.2]: /${version}/reference/command/configureFailPoint -> ${base}/${version}/reference/commands -[v2.2]: /${version}/reference/command/hashBSONElement -> ${base}/${version}/reference/commands -[v2.2]: /${version}/reference/command/hostInfo -> ${base}/${version}/reference/commands -[v2.2]: /${version}/reference/command/text -> ${base}/${version}/reference/commands -[v2.2]: /${version}/tutorial/calculate-distances-using-spherical-geometry-with-2d-geospatial-indexes -> ${base}/${version}/applications/geospatial-indexes -[v2.2]: /${version}/reference/privilege-documents -> ${base}/${version}/security -[v2.2]: /${version}/reference/user-privileges -> ${base}/${version}/security -[v2.2]: /${version}/tutorial/control-access-to-mongodb-with-kerberos-authentication -> ${base}/${version}/security -[v2.2]: /${version}/tutorial/install-mongodb-enterprise -> ${base}/${version}/administration/snmp -[v2.2]: /${version}/core/2d -> ${base}/${version}/core/geospatial-indexes -[v2.2]: /${version}/core/2dsphere -> ${base}/${version}/core/geospatial-indexes -[v2.2]: /${version}/core/backups -> ${base}/${version}/administration/backups -[v2.2]: /${version}/core/geohaystack -> ${base}/${version}/core/geospatial-indexes -[v2.2]: /${version}/core/gridfs -> ${base}/${version}/applications/gridfs -[v2.2]: /${version}/core/import-export -> ${base}/${version}/administration/import-export -[v2.2]: /${version}/core/journaling -> ${base}/${version}/administration/journaling -[v2.2]: /${version}/core/master-slave -> ${base}/${version}/administration/master-slave -[v2.2]: /${version}/tutorial/upgrade-revision -> ${base}/${version}/release-notes/2.2 -(v2.2-*]: /${version}/administration/master-slave -> ${base}/${version}/core/master-slave -[v2.2]: /${version}/administration/replica-set-deployment -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/administration/replica-set-member-configuration -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/administration/replica-set-maintenance -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/reference/replication -> ${base}/${version}/reference/replica-commands -[v2.2]: /${version}/core/operational-segregation -> ${base}/${version}/administration/operational-segregation -[v2.2]: /${version}/core/read-preference -> ${base}/${version}/applications/replication -[v2.2]: /${version}/core/replica-set-architectures -> ${base}/${version}/administration/replica-set-architectures -[v2.2]: /${version}/core/security -> ${base}/${version}/administration/security -[v2.2]: /${version}/core/server-side-javascript -> ${base}/${version}/applications/server-side-javascript -[v2.2]: /${version}/core/sharded-cluster-architectures -> ${base}/${version}/administration/sharded-cluster-architectures -[v2.2]: /${version}/core/sharded-cluster-query-router -> ${base}/${version}/administration/sharded-clusters/#automatic-operation-and-query-routing-with-mongos -[v2.2]: /${version}/core/sharded-cluster-security -> ${base}/${version}/administration/sharded-clusters/#sharded-cluster-security-considerations -[v2.2]: /${version}/core/sharded-cluster-mechanics -> ${base}/${version}/core/sharded-cluster-internals -[v2.2]: /${version}/core/sharding-balancing -> ${base}/${version}/core/sharded-cluster-internals -[v2.2]: /${version}/core/sharding-chunk-splitting -> ${base}/${version}/core/sharded-cluster-internals -[v2.2]: /${version}/core/sharding-chunk-migration -> ${base}/${version}/core/sharded-cluster-internals -[v2.2]: /${version}/core/sharding-shard-key-indexes -> ${base}/${version}/core/sharded-cluster-internals -[v2.2]: /${version}/core/sharded-cluster-metadata -> ${base}/${version}/core/sharded-cluster-internals -[v2.2]: /${version}/administration/sharded-cluster-deployment -> ${base}/${version}/tutorial/#sharding -[v2.2]: /${version}/tutorial/choose-a-shard-key -> ${base}/${version}/tutorial/select-shard-key -(v2.2-*]: /${version}/tutorial/select-shard-key -> ${base}/${version}/tutorial/choose-a-shard-key -[v2.2]: /${version}/administration/sharded-cluster-maintenance -> ${base}/${version}/tutorial/#sharding -[v2.2]: /${version}/administration/sharded-cluster-data -> ${base}/${version}/tutorial/#sharding -[v2.2]: /${version}/core/tag-aware-sharding -> ${base}/${version}/administration/tag-aware-sharding -[v2.2]: /${version}/core/text-search -> ${base}/${version}/indexes -[v2.2]: /${version}/core/write-concern -> ${base}/${version}/applications/replication -[v2.2]: /${version}/reference/write-concern -> ${base}/${version}/applications/replication -[v2.2]: /${version}/reference/database-references -> ${base}/${version}/applications/database-references -[v2.2]: /${version}/reference/gridfs -> ${base}/${version}/applications/gridfs -(v3.0-*]: /${version}/reference/gridfs -> ${base}/${version}/core/gridfs -[v2.2]: /${version}/reference/object-id -> ${base}/${version}/core/object-id -[v2.2]: /${version}/reference/ulimit -> ${base}/${version}/administration/ulimit -[v2.2]: /${version}/tutorial/administer-shard-tags -> ${base}/${version}/administration/tag-aware-sharding -[v2.2]: /${version}/tutorial/avoid-text-index-name-limit -> ${base}/${version}/indexes -[v2.2]: /${version}/tutorial/build-indexes-in-the-background -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/build-indexes-on-replica-sets -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/configure-a-delayed-replica-set-member -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/tutorial/configure-a-hidden-replica-set-member -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/tutorial/configure-a-non-voting-replica-set-member -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/tutorial/configure-replica-set-secondary-sync-target -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/tutorial/configure-secondary-only-replica-set-member -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/tutorial/configure-ssl -> ${base}/${version}/administration/ssl -[v2.2]: /${version}/tutorial/control-results-of-text-search -> ${base}/${version}/indexes -[v2.2]: /${version}/tutorial/create-a-compound-index -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/create-a-hashed-index -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/create-a-sparse-index -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/create-a-unique-index -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/create-a-vulnerability-report -> ${base}/${version}/administration/vulnerability-notification -[v2.2]: /${version}/tutorial/create-an-index -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/create-indexes-to-support-queries -> ${base}/${version}/applications/indexes -[v2.2]: /${version}/tutorial/create-queries-that-ensure-selectivity -> ${base}/${version}/applications/indexes -[v2.2]: /${version}/tutorial/sort-results-with-indexes -> ${base}/${version}/applications/indexes -[v2.2]: /${version}/tutorial/create-text-index-on-multiple-fields -> ${base}/${version}/indexes -[v2.2]: /${version}/tutorial/enable-authentication-in-sharded-cluster -> ${base}/${version}/administration/sharded-clusters -[v2.2]: /${version}/tutorial/ensure-indexes-fit-ram -> ${base}/${version}/applications/indexes -[v2.2]: /${version}/tutorial/evaluate-operation-performance -> ${base}/${version}/applications/optimization -[v2.2]: /${version}/tutorial/list-indexes -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/manage-chained-replication -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/tutorial/manage-in-progress-indexing-operations -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/measure-index-use -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/monitor-with-snmp -> ${base}/${version}/administration/snmp -[v2.2]: /${version}/tutorial/rebuild-indexes -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/remove-indexes -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/remove-replica-set-member -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/tutorial/replace-replica-set-member -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/tutorial/resync-replica-set-member -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/tutorial/select-shard-key -> ${base}/${version}/core/sharded-clusters -[v2.2]: /${version}/tutorial/shard-collection-with-a-hashed-shard-key -> ${base}/${version}/core/sharded-clusters -[v2.2]: /${version}/tutorial/shard-gridfs-data -> ${base}/${version}/core/sharded-cluster-internals/#sharding-gridfs-stores -[v2.2]: /${version}/reference/sharding -> ${base}/${version}/reference -[v2.2]: /${version}/reference/sharding-commands -> ${base}/${version}/reference -[v2.2]: /${version}/tutorial/specify-language-for-text-index -> ${base}/${version}/indexes -[v2.2]: /${version}/tutorial/store-javascript-function-on-server -> ${base}/${version}/applications/server-side-javascript -[v2.2]: /${version}/tutorial/troubleshoot-replica-sets -> ${base}/${version}/administration/replica-sets -[v2.2]: /${version}/tutorial/use-capped-collections-for-fast-writes-and-reads -> ${base}/${version}/applications/optimization -[v2.2]: /${version}/tutorial/optimize-query-performance-with-indexes-and-projections -> ${base}/${version}/applications/optimization -(v2.2-*]: /${version}/administration/backups -> ${base}/${version}/core/backups -(v2.2-*]: /${version}/applications/create -> ${base}/${version}/tutorial/insert-documents -(v2.2-*]: /${version}/applications/delete -> ${base}/${version}/tutorial/remove-documents -(v2.2-*]: /${version}/applications/geohaystack -> ${base}/${version}/core/geohaystack -(v2.2-*]: /${version}/applications/gridfs -> ${base}/${version}/core/gridfs -(v2.2-*]: /${version}/administration/import-export -> ${base}/${version}/core/import-export -(v2.2-*]: /${version}/administration/journaling -> ${base}/${version}/core/journaling -(v2.2-*]: /${version}/administration/operational-segregation -> ${base}/${version}/core/operational-segregation -(v2.2-*]: /${version}/applications/read -> ${base}/${version}/tutorial/query-documents -(v2.2-*]: /${version}/administration/replica-set-architectures -> ${base}/${version}/core/replica-set-architectures -(v2.2-*]: /${version}/applications/server-side-javascript -> ${base}/${version}/core/server-side-javascript -(v2.2-*]: /${version}/administration/sharded-cluster-architectures -> ${base}/${version}/core/sharded-cluster-architectures -[v2.2]: /${version}/core/sharded-cluster-architectures-production -> ${base}/${version}/administration/sharded-cluster-architectures -[v2.2]: /${version}/core/sharded-cluster-architectures-test -> ${base}/${version}/administration/sharded-cluster-architectures -(v2.2-*]: /${version}/administration/tag-aware-sharding -> ${base}/${version}/core/tag-aware-sharding -(v2.2-*]: /${version}/applications/text-search -> ${base}/${version}/core/text-search -(v2.2-*]: /${version}/applications/update -> ${base}/${version}/tutorial/modify-documents -(v2.2-*]: /${version}/applications/database-references -> ${base}/${version}/reference/database-references -(v2.2-*]: /${version}/applications/gridfs -> ${base}/${version}/reference/gridfs -(v2.2-*]: /${version}/core/object-id -> ${base}/${version}/reference/object-id -(v2.2-*]: /${version}/administration/ulimit -> ${base}/${version}/reference/ulimit -(v2.2-*]: /${version}/administration/ssl -> ${base}/${version}/tutorial/configure-ssl -(v2.2-*]: /${version}/administration/vulnerability-notification -> ${base}/${version}/tutorial/create-a-vulnerability-report -(v2.2-*]: /${version}/administration/snmp -> ${base}/${version}/tutorial/monitor-with-snmp -[v2.2]: /${version}/reference/parameters -> ${base}/${version}/reference/command/setParameter -[v2.2]: /${version}/reference/text-search -> ${base}/${version}/indexes -[v2.2]: /${version}/tutorial/create-text-index-on-multi-language-collection -> ${base}/${version}/indexes -[v2.2]: /${version}/tutorial/enable-text-search -> ${base}/${version}/indexes -[v2.2]: /${version}/tutorial/limit-number-of-elements-in-updated-array -> ${base}/${version}/reference/operators -[v2.2]: /${version}/tutorial/limit-number-of-items-scanned-for-text-search -> ${base}/${version}/indexes -[v2.2]: /${version}/tutorial/return-text-queries-using-only-text-index -> ${base}/${version}/indexes -[v2.2]: /${version}/tutorial/search-for-text -> ${base}/${version}/indexes -[v2.2]: /${version}/reference/method/db.hostInfo -> ${base}/${version}/reference/method -[v2.2]: /${version}/tutorial/configure-replica-set-tag-sets -> ${base}/${version}/reference/replica-configuration -(v2.2-*]: /${version}/tutorial/manage-sharded-cluster-config-server -> ${base}/${version}/administration/sharded-clusters -[v2.2]: /${version}/tutorial/deploy-config-servers -> ${base}/${version}/tutorial/manage-sharded-cluster-config-server -[v2.2]: /${version}/tutorial/migrate-config-servers-with-same-hostname -> ${base}/${version}/tutorial/manage-sharded-cluster-config-server -[v2.2]: /${version}/tutorial/migrate-config-servers-with-different-hostnames -> ${base}/${version}/tutorial/manage-sharded-cluster-config-server -[v2.2]: /${version}/tutorial/replace-config-server -> ${base}/${version}/tutorial/manage-sharded-cluster-config-server -[v2.2]: /${version}/tutorial/backup-sharded-cluster-metadata -> ${base}/${version}/tutorial/manage-sharded-cluster-config-server -(v2.2-*]: /${version}/reference/operators -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/operator/query-array -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/operator/query-comparison -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/operator/query-element -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/method/Mongo.setSlaveOk -> ${base}/${version}/reference/method/mongo.setSlaveOk -[v2.2]: /${version}/reference/operator/query-geospatial -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/method/Mongo.getReadPrefMode -> ${base}/${version}/applications/replication -[v2.2]: /${version}/reference/operator/query-javascript -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/method/Mongo.getReadPrefTagSet -> ${base}/${version}/applications/replication -[v2.2]: /${version}/reference/operator/query-logical -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/method/Mongo.setReadPref -> ${base}/${version}/applications/replication -[v2.2]: /${version}/reference/operator/update-array -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/operator/update-field -> ${base}/${version}/reference/operators -[*]: /${version}/reference/mongo.setSlaveOk -> ${base}/${version}/reference/method/Mongo.setSlaveOk -(v2.2-*]: /${version}/tutorial/control-access-to-mongodb-with-authentication -> ${base}/${version}/tutorial/enable-authentication -[v2.2]: /${version}/tutorial/enable-authentication -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication -[v2.2]: /${version}/tutorial/add-user-administrator -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication -[v2.2]: /${version}/tutorial/add-user-to-database -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication -[v2.2]: /${version}/tutorial/generate-key-file -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication -[v2.2]: /${version}/core/access-control -> ${base}/${version}/core/security -[v2.2]: /${version}/release-notes/security -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication/#password-hashing-insecurity -[v2.2]: /${version}/core/security-introduction -> ${base}/${version}/administration/security -[v2.2]: /${version}/core/security-risk-management-strategies -> ${base}/${version}/administration/security -[v2.2]: /${version}/core/security-network -> ${base}/${version}/administration/security -[v2.2]: /${version}/core/security-interface -> ${base}/${version}/administration/security -[v2.2]: /${version}/administration/security-network -> ${base}/${version}/administration/security -[v2.2]: /${version}/administration/security-access-control -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication -[v2.2]: /${version}/reference/security -> ${base}/${version}/security -[v2.2]: /${version}/reference/default-mongodb-port -> ${base}/${version}/administration/security -(v2.2-*]: /${version}/reference/javascript -> ${base}/${version}/reference/method -[v2.2]: /${version}/reference/method/js-collection -> ${base}/${version}/reference/javascript -[v2.2]: /${version}/reference/method/js-connection -> ${base}/${version}/reference/javascript -[v2.2]: /${version}/reference/method/js-constructor -> ${base}/${version}/reference/javascript -[v2.2]: /${version}/reference/method/js-cursor -> ${base}/${version}/reference/javascript -[v2.2]: /${version}/reference/method/js-database -> ${base}/${version}/reference/javascript -[v2.2]: /${version}/reference/method/js-native -> ${base}/${version}/reference/javascript -[v2.2]: /${version}/reference/method/js-replication -> ${base}/${version}/reference/javascript -[v2.2]: /${version}/reference/method/js-sharding -> ${base}/${version}/reference/javascript -[v2.2]: /${version}/reference/method/js-subprocess -> ${base}/${version}/reference/javascript -(v2.2-*]: /${version}/reference/server-status-index -> ${base}/${version}/reference/server-status -(v2.2-*]: /${version}/reference/commands -> ${base}/${version}/reference/command -(v2.2-*]: /${version}/reference/connection-pool-stats -> ${base}/${version}/reference/command/connPoolStats -(v2.2-*]: /${version}/reference/collection-statistics -> ${base}/${version}/reference/command/collStats -(v2.2-*]: /${version}/reference/collection-validation -> ${base}/${version}/reference/command/validate -(v2.2-*]: /${version}/reference/current-op -> ${base}/${version}/reference/method/db.currentOp -(v2.2-*]: /${version}/reference/database-statistics -> ${base}/${version}/reference/command/dbStats -(v2.2-*]: /${version}/reference/explain -> ${base}/${version}/reference/method/cursor.explain -(v2.2-*]: /${version}/reference/meta-query-operators -> ${base}/${version}/reference/operator/query-modifier -[v2.2]: /${version}/reference/operator/query-modifier -> ${base}/${version}/reference/meta-query-operators -[v2.2]: /${version}/reference/program/mongo -> ${base}/${version}/reference/mongo -(v2.2-*]: /${version}/reference/mongo -> ${base}/${version}/reference/program/mongo -[v2.2]: /${version}/reference/program/mongod.exe -> ${base}/${version}/reference/mongod.exe -(v2.2-*]: /${version}/reference/mongod.exe -> ${base}/${version}/reference/program/mongod.exe -[v2.2]: /${version}/reference/program/mongod -> ${base}/${version}/reference/mongod -(v2.2-*]: /${version}/reference/mongod -> ${base}/${version}/reference/program/mongod -[v2.2]: /${version}/reference/program/mongodump -> ${base}/${version}/reference/mongodump -(v2.2-*]: /${version}/reference/mongodump -> ${base}/${version}/reference/program/mongodump -[v2.2]: /${version}/reference/program/mongoexport -> ${base}/${version}/reference/mongoexport -(v2.2-*]: /${version}/reference/mongoexport -> ${base}/${version}/reference/program/mongoexport -[v2.2]: /${version}/reference/program/mongofiles -> ${base}/${version}/reference/mongofiles -(v2.2-*]: /${version}/reference/mongofiles -> ${base}/${version}/reference/program/mongofiles -[v2.2]: /${version}/reference/program/mongoimport -> ${base}/${version}/reference/mongoimport -(v2.2-*]: /${version}/reference/mongoimport -> ${base}/${version}/reference/program/mongoimport -[v2.2]: /${version}/reference/program/mongooplog -> ${base}/${version}/reference/mongooplog -(v2.2-*]: /${version}/reference/mongooplog -> ${base}/${version}/reference/program/mongooplog -[v2.2]: /${version}/reference/program/mongoperf -> ${base}/${version}/reference/mongoperf -(v2.2-*]: /${version}/reference/mongoperf -> ${base}/${version}/reference/program/mongoperf -[v2.2]: /${version}/reference/program/mongorestore -> ${base}/${version}/reference/mongorestore -(v2.2-*]: /${version}/reference/mongorestore -> ${base}/${version}/reference/program/mongorestore -[v2.2]: /${version}/reference/program/mongos.exe -> ${base}/${version}/reference/mongos.exe -(v2.2-*]: /${version}/reference/mongos.exe -> ${base}/${version}/reference/program/mongos.exe -[v2.2]: /${version}/reference/program/mongos -> ${base}/${version}/reference/mongos -(v2.2-*]: /${version}/reference/mongos -> ${base}/${version}/reference/program/mongos -[v2.2]: /${version}/reference/program/mongosniff -> ${base}/${version}/reference/mongosniff -(v2.2-*]: /${version}/reference/mongosniff -> ${base}/${version}/reference/program/mongosniff -[v2.2]: /${version}/reference/program/mongostat -> ${base}/${version}/reference/mongostat -(v2.2-*]: /${version}/reference/mongostat -> ${base}/${version}/reference/program/mongostat -[v2.2]: /${version}/reference/program/mongotop -> ${base}/${version}/reference/mongotop -(v2.2-*]: /${version}/reference/mongotop -> ${base}/${version}/reference/program/mongotop -[v2.2]: /${version}/reference/program/bsondump -> ${base}/${version}/reference/bsondump -(v2.2-*]: /${version}/reference/bsondump -> ${base}/${version}/reference/program/bsondump -(v2.2-*]: /${version}/reference/components/index.html -> ${base}/${version}/reference/program/index.html -(v2.2-*]: /${version}/reference/replication-info -> ${base}/${version}/reference/method/db.getReplicationInfo -(v2.2-*]: /${version}/reference/replica-status -> ${base}/${version}/reference/command/replSetGetStatus -(v2.2-*]: /${version}/reference/text-search -> ${base}/${version}/reference/command/text -[v2.2]: /${version}/tutorial/change-user-password -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication -[*]: /${version}/tutorials -> ${base}/${version}/tutorial -[*]: /${version}/reference/methods -> ${base}/${version}/reference/method -[*]: /${version}/MongoDB-Manual.pdf -> ${base}/${version}/meta/pdfs -[v2.2]: /${version}/core/crud-introduction -> ${base}/${version}/crud -[v2.2]: /${version}/core/crud -> ${base}/${version}/crud -[v2.2]: /${version}/core/query -> ${base}/${version}/core/read-operations -[v2.2]: /${version}/core/query-optimization -> ${base}/${version}/core/read-operations -[v2.2]: /${version}/core/distributed-queries -> ${base}/${version}/core/read-operations -[v2.2]: /${version}/core/data-modification -> ${base}/${version}/core/write-operations -[v2.2]: /${version}/core/bulk-inserts -> ${base}/${version}/core/write-operations -(v2.2-*]: /${version}/core/data-modeling -> ${base}/${version}/data-modeling -[v2.2]: /${version}/core/distributed-write-operations -> ${base}/${version}/core/write-operations -[v2.2]: /${version}/core/cursors -> ${base}/${version}/core/read-operations/#read-operations-cursors -[v2.2]: /${version}/core/query-plans -> ${base}/${version}/core/read-operations/#read-operations-query-optimization -[v2.2]: /${version}/core/record-padding -> ${base}/${version}/core/write-operations/#write-operations-padding-factor -[v2.2]: /${version}/core/read-preference-mechanics -> ${base}/${version}/applications/replication/#replica-set-read-preference -[v2.2]: /${version}/applications/crud/ -> ${base}/${version}/crud -[v2.2]: /${version}/tutorial/insert-documents -> ${base}/${version}/applications/create +[v2.2]: /${version}/core/replica-set-hidden-member -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/core/replica-set-secondary -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/core/replica-set-priority-0-member -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/core/replica-set-delayed-member -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/core/replication-introduction -> ${base}/${version}/replication/ +[v2.2]: /${version}/core/replica-set-members -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/administration/replica-set-member-configuration-tutorials -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/administration/replica-set-maintenance-tutorials -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/administration/replica-set-deployment-tutorials -> ${base}/${version}/administration/replica-sets/ +(v2.2-*]: /${version}/release-notes/replica-set-features -> ${base}/${version}/replication/ +(v2.2-*]: /${version}/core/replication-internals -> ${base}/${version}/core/replication-process/ +[v2.2]: /${version}/core/replication-process -> ${base}/${version}/core/replication-internals/ +[v2.2]: /${version}/core/replica-set-sync -> ${base}/${version}/core/replication-internals/ +[v2.2]: /${version}/core/inter-process-authentication -> ${base}/${version}/administration/replica-sets/#replica-set-security/ +[v2.2]: /${version}/core/replica-set-elections -> ${base}/${version}/core/replication-internals/ +[*]: /${version}/reference/mongo-shell-reference -> ${base}/${version}/reference/mongo-shell/ +[*]: /${version}/reference/method/getShardDistribution -> ${base}/${version}/reference/method/db.collection.getShardDistribution/ +[*]: /${version}/reference/method/getDB -> ${base}/${version}/reference/method/Mongo.getDB/ +[*]: /${version}/reference/method/getShardVersion -> ${base}/${version}/reference/method/db.collection.getShardVersion/ +[*]: /${version}/reference/command/whatsMyUri -> ${base}/${version}/reference/command/whatsmyuri/ +[*]: /${version}/reference/command/writeBackListen -> ${base}/${version}/reference/command/writebacklisten/ +[*]: /${version}/reference/command/isdbGrid -> ${base}/${version}/reference/command/isdbgrid/ +[*]: /${version}/reference/command/emptyCapped -> ${base}/${version}/reference/command/emptycapped/ +[*]: /${version}/reference/command/printShardingStatus -> ${base}/${version}/reference/method/db.printShardingStatus/ +[*]: /${version}/administration/sharding-architectures -> ${base}/${version}/core/sharded-cluster-architectures/ +[*]: /${version}/administration/sharding -> ${base}/${version}/administration/sharded-clusters/ +[v2.2]: /${version}/core/sharding -> ${base}/${version}/core/sharded-clusters/ +[v2.2]: /${version}/core/sharding-introduction -> ${base}/${version}/core/sharded-clusters/ +(v2.2-*]: /${version}/core/sharded-clusters -> ${base}/${version}/core/sharding/ +[*]: /${version}/core/sharding-internals -> ${base}/${version}/core/sharded-cluster-mechanics/ +[*]: /${version}/core/sharding-internals/#sharding-internals-shard-keys -> ${base}/${version}/core/sharding-shard-key/ +(v2.2-*]: /${version}/core/map-reduce/#map-reduce-troubleshooting -> ${base}/${version}/tutorial/troubleshoot-map-function/ +[v2.2]: /${version}/core/sharded-cluster-components -> ${base}/${version}/core/sharded-clusters/ +[v2.2]: /${version}/core/sharded-cluster-shards -> ${base}/${version}/core/sharded-clusters/ +[v2.2]: /${version}/core/sharded-cluster-config-servers -> ${base}/${version}/core/sharded-clusters/ +[v2.2]: /${version}/core/sharded-cluster-requirements -> ${base}/${version}/core/sharded-clusters/ +(v2.2-*]: /${version}/core/sharded-cluster-internals -> ${base}/${version}/core/sharding/ +[v2.2]: /${version}/core/sharded-cluster-operations -> ${base}/${version}/core/sharded-cluster-internals/ +[*]: /${version}/tutorial/install-mongodb-on-redhat-centos-or-fedora-linux -> ${base}/${version}/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/ +[v2.2]: /${version}/release-notes/2.4 -> ${base}/${version}/release-notes/ +[v2.2]: /${version}/release-notes/2.4-changes -> ${base}/${version}/release-notes/ +[v2.2]: /${version}/release-notes/2.4-index-types -> ${base}/${version}/release-notes/ +[v2.2]: /${version}/release-notes/2.4-javascript -> ${base}/${version}/release-notes/ +[v2.2]: /${version}/release-notes/2.4-overview -> ${base}/${version}/release-notes/ +[v2.2]: /${version}/release-notes/2.4-upgrade -> ${base}/${version}/release-notes/ +[v2.2]: /${version}/reference/command/configureFailPoint -> ${base}/${version}/reference/commands/ +[v2.2]: /${version}/reference/command/hashBSONElement -> ${base}/${version}/reference/commands/ +[v2.2]: /${version}/reference/command/hostInfo -> ${base}/${version}/reference/commands/ +[v2.2]: /${version}/reference/command/text -> ${base}/${version}/reference/commands/ +[v2.2]: /${version}/tutorial/calculate-distances-using-spherical-geometry-with-2d-geospatial-indexes -> ${base}/${version}/applications/geospatial-indexes/ +[v2.2]: /${version}/reference/privilege-documents -> ${base}/${version}/security/ +[v2.2]: /${version}/reference/user-privileges -> ${base}/${version}/security/ +[v2.2]: /${version}/tutorial/control-access-to-mongodb-with-kerberos-authentication -> ${base}/${version}/security/ +[v2.2]: /${version}/tutorial/install-mongodb-enterprise -> ${base}/${version}/administration/snmp/ +[v2.2]: /${version}/core/2d -> ${base}/${version}/core/geospatial-indexes/ +[v2.2]: /${version}/core/2dsphere -> ${base}/${version}/core/geospatial-indexes/ +[v2.2]: /${version}/core/backups -> ${base}/${version}/administration/backups/ +[v2.2]: /${version}/core/geohaystack -> ${base}/${version}/core/geospatial-indexes/ +[v2.2]: /${version}/core/gridfs -> ${base}/${version}/applications/gridfs/ +[v2.2]: /${version}/core/import-export -> ${base}/${version}/administration/import-export/ +[v2.2]: /${version}/core/journaling -> ${base}/${version}/administration/journaling/ +[v2.2]: /${version}/core/master-slave -> ${base}/${version}/administration/master-slave/ +[v2.2]: /${version}/tutorial/upgrade-revision -> ${base}/${version}/release-notes/2.2/ +(v2.2-*]: /${version}/administration/master-slave -> ${base}/${version}/core/master-slave/ +[v2.2]: /${version}/administration/replica-set-deployment -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/administration/replica-set-member-configuration -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/administration/replica-set-maintenance -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/reference/replication -> ${base}/${version}/reference/replica-commands/ +[v2.2]: /${version}/core/operational-segregation -> ${base}/${version}/administration/operational-segregation/ +[v2.2]: /${version}/core/read-preference -> ${base}/${version}/applications/replication/ +[v2.2]: /${version}/core/replica-set-architectures -> ${base}/${version}/administration/replica-set-architectures/ +[v2.2]: /${version}/core/security -> ${base}/${version}/administration/security/ +[v2.2]: /${version}/core/server-side-javascript -> ${base}/${version}/applications/server-side-javascript/ +[v2.2]: /${version}/core/sharded-cluster-architectures -> ${base}/${version}/administration/sharded-cluster-architectures/ +[v2.2]: /${version}/core/sharded-cluster-query-router -> ${base}/${version}/administration/sharded-clusters/#automatic-operation-and-query-routing-with-mongos/ +[v2.2]: /${version}/core/sharded-cluster-security -> ${base}/${version}/administration/sharded-clusters/#sharded-cluster-security-considerations/ +[v2.2]: /${version}/core/sharded-cluster-mechanics -> ${base}/${version}/core/sharded-cluster-internals/ +[v2.2]: /${version}/core/sharding-balancing -> ${base}/${version}/core/sharded-cluster-internals/ +[v2.2]: /${version}/core/sharding-chunk-splitting -> ${base}/${version}/core/sharded-cluster-internals/ +[v2.2]: /${version}/core/sharding-chunk-migration -> ${base}/${version}/core/sharded-cluster-internals/ +[v2.2]: /${version}/core/sharding-shard-key-indexes -> ${base}/${version}/core/sharded-cluster-internals/ +[v2.2]: /${version}/core/sharded-cluster-metadata -> ${base}/${version}/core/sharded-cluster-internals/ +[v2.2]: /${version}/administration/sharded-cluster-deployment -> ${base}/${version}/tutorial/#sharding/ +[v2.2]: /${version}/tutorial/choose-a-shard-key -> ${base}/${version}/tutorial/select-shard-key/ +(v2.2-*]: /${version}/tutorial/select-shard-key -> ${base}/${version}/tutorial/choose-a-shard-key/ +[v2.2]: /${version}/administration/sharded-cluster-maintenance -> ${base}/${version}/tutorial/#sharding/ +[v2.2]: /${version}/administration/sharded-cluster-data -> ${base}/${version}/tutorial/#sharding/ +[v2.2]: /${version}/core/tag-aware-sharding -> ${base}/${version}/administration/tag-aware-sharding/ +[v2.2]: /${version}/core/text-search -> ${base}/${version}/indexes/ +[v2.2]: /${version}/core/write-concern -> ${base}/${version}/applications/replication/ +[v2.2]: /${version}/reference/write-concern -> ${base}/${version}/applications/replication/ +[v2.2]: /${version}/reference/database-references -> ${base}/${version}/applications/database-references/ +[v2.2]: /${version}/reference/gridfs -> ${base}/${version}/applications/gridfs/ +(v3.0-*]: /${version}/reference/gridfs -> ${base}/${version}/core/gridfs/ +[v2.2]: /${version}/reference/object-id -> ${base}/${version}/core/object-id/ +[v2.2]: /${version}/reference/ulimit -> ${base}/${version}/administration/ulimit/ +[v2.2]: /${version}/tutorial/administer-shard-tags -> ${base}/${version}/administration/tag-aware-sharding/ +[v2.2]: /${version}/tutorial/avoid-text-index-name-limit -> ${base}/${version}/indexes/ +[v2.2]: /${version}/tutorial/build-indexes-in-the-background -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/build-indexes-on-replica-sets -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/configure-a-delayed-replica-set-member -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/tutorial/configure-a-hidden-replica-set-member -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/tutorial/configure-a-non-voting-replica-set-member -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/tutorial/configure-replica-set-secondary-sync-target -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/tutorial/configure-secondary-only-replica-set-member -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/tutorial/configure-ssl -> ${base}/${version}/administration/ssl/ +[v2.2]: /${version}/tutorial/control-results-of-text-search -> ${base}/${version}/indexes/ +[v2.2]: /${version}/tutorial/create-a-compound-index -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/create-a-hashed-index -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/create-a-sparse-index -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/create-a-unique-index -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/create-a-vulnerability-report -> ${base}/${version}/administration/vulnerability-notification/ +[v2.2]: /${version}/tutorial/create-an-index -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/create-indexes-to-support-queries -> ${base}/${version}/applications/indexes/ +[v2.2]: /${version}/tutorial/create-queries-that-ensure-selectivity -> ${base}/${version}/applications/indexes/ +[v2.2]: /${version}/tutorial/sort-results-with-indexes -> ${base}/${version}/applications/indexes/ +[v2.2]: /${version}/tutorial/create-text-index-on-multiple-fields -> ${base}/${version}/indexes/ +[v2.2]: /${version}/tutorial/enable-authentication-in-sharded-cluster -> ${base}/${version}/administration/sharded-clusters/ +[v2.2]: /${version}/tutorial/ensure-indexes-fit-ram -> ${base}/${version}/applications/indexes/ +[v2.2]: /${version}/tutorial/evaluate-operation-performance -> ${base}/${version}/applications/optimization/ +[v2.2]: /${version}/tutorial/list-indexes -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/manage-chained-replication -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/tutorial/manage-in-progress-indexing-operations -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/measure-index-use -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/monitor-with-snmp -> ${base}/${version}/administration/snmp/ +[v2.2]: /${version}/tutorial/rebuild-indexes -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/remove-indexes -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/remove-replica-set-member -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/tutorial/replace-replica-set-member -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/tutorial/resync-replica-set-member -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/tutorial/select-shard-key -> ${base}/${version}/core/sharded-clusters/ +[v2.2]: /${version}/tutorial/shard-collection-with-a-hashed-shard-key -> ${base}/${version}/core/sharded-clusters/ +[v2.2]: /${version}/tutorial/shard-gridfs-data -> ${base}/${version}/core/sharded-cluster-internals/#sharding-gridfs-stores/ +[v2.2]: /${version}/reference/sharding -> ${base}/${version}/reference/ +[v2.2]: /${version}/reference/sharding-commands -> ${base}/${version}/reference/ +[v2.2]: /${version}/tutorial/specify-language-for-text-index -> ${base}/${version}/indexes/ +[v2.2]: /${version}/tutorial/store-javascript-function-on-server -> ${base}/${version}/applications/server-side-javascript/ +[v2.2]: /${version}/tutorial/troubleshoot-replica-sets -> ${base}/${version}/administration/replica-sets/ +[v2.2]: /${version}/tutorial/use-capped-collections-for-fast-writes-and-reads -> ${base}/${version}/applications/optimization/ +[v2.2]: /${version}/tutorial/optimize-query-performance-with-indexes-and-projections -> ${base}/${version}/applications/optimization/ +(v2.2-*]: /${version}/administration/backups -> ${base}/${version}/core/backups/ +(v2.2-*]: /${version}/applications/create -> ${base}/${version}/tutorial/insert-documents/ +(v2.2-*]: /${version}/applications/delete -> ${base}/${version}/tutorial/remove-documents/ +(v2.2-*]: /${version}/applications/geohaystack -> ${base}/${version}/core/geohaystack/ +(v2.2-*]: /${version}/applications/gridfs -> ${base}/${version}/core/gridfs/ +(v2.2-*]: /${version}/administration/import-export -> ${base}/${version}/core/import-export/ +(v2.2-*]: /${version}/administration/journaling -> ${base}/${version}/core/journaling/ +(v2.2-*]: /${version}/administration/operational-segregation -> ${base}/${version}/core/operational-segregation/ +(v2.2-*]: /${version}/applications/read -> ${base}/${version}/tutorial/query-documents/ +(v2.2-*]: /${version}/administration/replica-set-architectures -> ${base}/${version}/core/replica-set-architectures/ +(v2.2-*]: /${version}/applications/server-side-javascript -> ${base}/${version}/core/server-side-javascript/ +(v2.2-*]: /${version}/administration/sharded-cluster-architectures -> ${base}/${version}/core/sharded-cluster-architectures/ +[v2.2]: /${version}/core/sharded-cluster-architectures-production -> ${base}/${version}/administration/sharded-cluster-architectures/ +[v2.2]: /${version}/core/sharded-cluster-architectures-test -> ${base}/${version}/administration/sharded-cluster-architectures/ +(v2.2-*]: /${version}/administration/tag-aware-sharding -> ${base}/${version}/core/tag-aware-sharding/ +(v2.2-*]: /${version}/applications/text-search -> ${base}/${version}/core/text-search/ +(v2.2-*]: /${version}/applications/update -> ${base}/${version}/tutorial/modify-documents/ +(v2.2-*]: /${version}/applications/database-references -> ${base}/${version}/reference/database-references/ +(v2.2-*]: /${version}/applications/gridfs -> ${base}/${version}/reference/gridfs/ +(v2.2-*]: /${version}/core/object-id -> ${base}/${version}/reference/object-id/ +(v2.2-*]: /${version}/administration/ulimit -> ${base}/${version}/reference/ulimit/ +(v2.2-*]: /${version}/administration/ssl -> ${base}/${version}/tutorial/configure-ssl/ +(v2.2-*]: /${version}/administration/vulnerability-notification -> ${base}/${version}/tutorial/create-a-vulnerability-report/ +(v2.2-*]: /${version}/administration/snmp -> ${base}/${version}/tutorial/monitor-with-snmp/ +[v2.2]: /${version}/reference/parameters -> ${base}/${version}/reference/command/setParameter/ +[v2.2]: /${version}/reference/text-search -> ${base}/${version}/indexes/ +[v2.2]: /${version}/tutorial/create-text-index-on-multi-language-collection -> ${base}/${version}/indexes/ +[v2.2]: /${version}/tutorial/enable-text-search -> ${base}/${version}/indexes/ +[v2.2]: /${version}/tutorial/limit-number-of-elements-in-updated-array -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/tutorial/limit-number-of-items-scanned-for-text-search -> ${base}/${version}/indexes/ +[v2.2]: /${version}/tutorial/return-text-queries-using-only-text-index -> ${base}/${version}/indexes/ +[v2.2]: /${version}/tutorial/search-for-text -> ${base}/${version}/indexes/ +[v2.2]: /${version}/reference/method/db.hostInfo -> ${base}/${version}/reference/method/ +[v2.2]: /${version}/tutorial/configure-replica-set-tag-sets -> ${base}/${version}/reference/replica-configuration/ +(v2.2-*]: /${version}/tutorial/manage-sharded-cluster-config-server -> ${base}/${version}/administration/sharded-clusters/ +[v2.2]: /${version}/tutorial/deploy-config-servers -> ${base}/${version}/tutorial/manage-sharded-cluster-config-server/ +[v2.2]: /${version}/tutorial/migrate-config-servers-with-same-hostname -> ${base}/${version}/tutorial/manage-sharded-cluster-config-server/ +[v2.2]: /${version}/tutorial/migrate-config-servers-with-different-hostnames -> ${base}/${version}/tutorial/manage-sharded-cluster-config-server/ +[v2.2]: /${version}/tutorial/replace-config-server -> ${base}/${version}/tutorial/manage-sharded-cluster-config-server/ +[v2.2]: /${version}/tutorial/backup-sharded-cluster-metadata -> ${base}/${version}/tutorial/manage-sharded-cluster-config-server/ +(v2.2-*]: /${version}/reference/operators -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/operator/query-array -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/operator/query-comparison -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/operator/query-element -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/method/Mongo.setSlaveOk -> ${base}/${version}/reference/method/mongo.setSlaveOk/ +[v2.2]: /${version}/reference/operator/query-geospatial -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/method/Mongo.getReadPrefMode -> ${base}/${version}/applications/replication/ +[v2.2]: /${version}/reference/operator/query-javascript -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/method/Mongo.getReadPrefTagSet -> ${base}/${version}/applications/replication/ +[v2.2]: /${version}/reference/operator/query-logical -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/method/Mongo.setReadPref -> ${base}/${version}/applications/replication/ +[v2.2]: /${version}/reference/operator/update-array -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/operator/update-field -> ${base}/${version}/reference/operators/ +[*]: /${version}/reference/mongo.setSlaveOk -> ${base}/${version}/reference/method/Mongo.setSlaveOk/ +(v2.2-*]: /${version}/tutorial/control-access-to-mongodb-with-authentication -> ${base}/${version}/tutorial/enable-authentication/ +[v2.2]: /${version}/tutorial/enable-authentication -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication/ +[v2.2]: /${version}/tutorial/add-user-administrator -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication/ +[v2.2]: /${version}/tutorial/add-user-to-database -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication/ +[v2.2]: /${version}/tutorial/generate-key-file -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication/ +[v2.2]: /${version}/core/access-control -> ${base}/${version}/core/security/ +[v2.2]: /${version}/release-notes/security -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication/#password-hashing-insecurity/ +[v2.2]: /${version}/core/security-introduction -> ${base}/${version}/administration/security/ +[v2.2]: /${version}/core/security-risk-management-strategies -> ${base}/${version}/administration/security/ +[v2.2]: /${version}/core/security-network -> ${base}/${version}/administration/security/ +[v2.2]: /${version}/core/security-interface -> ${base}/${version}/administration/security/ +[v2.2]: /${version}/administration/security-network -> ${base}/${version}/administration/security/ +[v2.2]: /${version}/administration/security-access-control -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication/ +[v2.2]: /${version}/reference/security -> ${base}/${version}/security/ +[v2.2]: /${version}/reference/default-mongodb-port -> ${base}/${version}/administration/security/ +(v2.2-*]: /${version}/reference/javascript -> ${base}/${version}/reference/method/ +[v2.2]: /${version}/reference/method/js-collection -> ${base}/${version}/reference/javascript/ +[v2.2]: /${version}/reference/method/js-connection -> ${base}/${version}/reference/javascript/ +[v2.2]: /${version}/reference/method/js-constructor -> ${base}/${version}/reference/javascript/ +[v2.2]: /${version}/reference/method/js-cursor -> ${base}/${version}/reference/javascript/ +[v2.2]: /${version}/reference/method/js-database -> ${base}/${version}/reference/javascript/ +[v2.2]: /${version}/reference/method/js-native -> ${base}/${version}/reference/javascript/ +[v2.2]: /${version}/reference/method/js-replication -> ${base}/${version}/reference/javascript/ +[v2.2]: /${version}/reference/method/js-sharding -> ${base}/${version}/reference/javascript/ +[v2.2]: /${version}/reference/method/js-subprocess -> ${base}/${version}/reference/javascript/ +(v2.2-*]: /${version}/reference/server-status-index -> ${base}/${version}/reference/server-status/ +(v2.2-*]: /${version}/reference/commands -> ${base}/${version}/reference/command/ +(v2.2-*]: /${version}/reference/connection-pool-stats -> ${base}/${version}/reference/command/connPoolStats/ +(v2.2-*]: /${version}/reference/collection-statistics -> ${base}/${version}/reference/command/collStats/ +(v2.2-*]: /${version}/reference/collection-validation -> ${base}/${version}/reference/command/validate/ +(v2.2-*]: /${version}/reference/current-op -> ${base}/${version}/reference/method/db.currentOp/ +(v2.2-*]: /${version}/reference/database-statistics -> ${base}/${version}/reference/command/dbStats/ +(v2.2-*]: /${version}/reference/explain -> ${base}/${version}/reference/method/cursor.explain/ +(v2.2-*]: /${version}/reference/meta-query-operators -> ${base}/${version}/reference/operator/query-modifier/ +[v2.2]: /${version}/reference/operator/query-modifier -> ${base}/${version}/reference/meta-query-operators/ +[v2.2]: /${version}/reference/program/mongo -> ${base}/${version}/reference/mongo/ +(v2.2-*]: /${version}/reference/mongo -> ${base}/${version}/reference/program/mongo/ +[v2.2]: /${version}/reference/program/mongod.exe -> ${base}/${version}/reference/mongod.exe/ +(v2.2-*]: /${version}/reference/mongod.exe -> ${base}/${version}/reference/program/mongod.exe/ +[v2.2]: /${version}/reference/program/mongod -> ${base}/${version}/reference/mongod/ +(v2.2-*]: /${version}/reference/mongod -> ${base}/${version}/reference/program/mongod/ +[v2.2]: /${version}/reference/program/mongodump -> ${base}/${version}/reference/mongodump/ +(v2.2-*]: /${version}/reference/mongodump -> ${base}/${version}/reference/program/mongodump/ +[v2.2]: /${version}/reference/program/mongoexport -> ${base}/${version}/reference/mongoexport/ +(v2.2-*]: /${version}/reference/mongoexport -> ${base}/${version}/reference/program/mongoexport/ +[v2.2]: /${version}/reference/program/mongofiles -> ${base}/${version}/reference/mongofiles/ +(v2.2-*]: /${version}/reference/mongofiles -> ${base}/${version}/reference/program/mongofiles/ +[v2.2]: /${version}/reference/program/mongoimport -> ${base}/${version}/reference/mongoimport/ +(v2.2-*]: /${version}/reference/mongoimport -> ${base}/${version}/reference/program/mongoimport/ +[v2.2]: /${version}/reference/program/mongooplog -> ${base}/${version}/reference/mongooplog/ +(v2.2-*]: /${version}/reference/mongooplog -> ${base}/${version}/reference/program/mongooplog/ +[v2.2]: /${version}/reference/program/mongoperf -> ${base}/${version}/reference/mongoperf/ +(v2.2-*]: /${version}/reference/mongoperf -> ${base}/${version}/reference/program/mongoperf/ +[v2.2]: /${version}/reference/program/mongorestore -> ${base}/${version}/reference/mongorestore/ +(v2.2-*]: /${version}/reference/mongorestore -> ${base}/${version}/reference/program/mongorestore/ +[v2.2]: /${version}/reference/program/mongos.exe -> ${base}/${version}/reference/mongos.exe/ +(v2.2-*]: /${version}/reference/mongos.exe -> ${base}/${version}/reference/program/mongos.exe/ +[v2.2]: /${version}/reference/program/mongos -> ${base}/${version}/reference/mongos/ +(v2.2-*]: /${version}/reference/mongos -> ${base}/${version}/reference/program/mongos/ +[v2.2]: /${version}/reference/program/mongosniff -> ${base}/${version}/reference/mongosniff/ +(v2.2-*]: /${version}/reference/mongosniff -> ${base}/${version}/reference/program/mongosniff/ +[v2.2]: /${version}/reference/program/mongostat -> ${base}/${version}/reference/mongostat/ +(v2.2-*]: /${version}/reference/mongostat -> ${base}/${version}/reference/program/mongostat/ +[v2.2]: /${version}/reference/program/mongotop -> ${base}/${version}/reference/mongotop/ +(v2.2-*]: /${version}/reference/mongotop -> ${base}/${version}/reference/program/mongotop/ +[v2.2]: /${version}/reference/program/bsondump -> ${base}/${version}/reference/bsondump/ +(v2.2-*]: /${version}/reference/bsondump -> ${base}/${version}/reference/program/bsondump/ +(v2.2-*]: /${version}/reference/components/index.html -> ${base}/${version}/reference/program/index.html/ +(v2.2-*]: /${version}/reference/replication-info -> ${base}/${version}/reference/method/db.getReplicationInfo/ +(v2.2-*]: /${version}/reference/replica-status -> ${base}/${version}/reference/command/replSetGetStatus/ +(v2.2-*]: /${version}/reference/text-search -> ${base}/${version}/reference/command/text/ +[v2.2]: /${version}/tutorial/change-user-password -> ${base}/${version}/tutorial/control-access-to-mongodb-with-authentication/ +[*]: /${version}/tutorials -> ${base}/${version}/tutorial/ +[*]: /${version}/reference/methods -> ${base}/${version}/reference/method/ +[*]: /${version}/MongoDB-Manual.pdf -> ${base}/${version}/meta/pdfs/ +[v2.2]: /${version}/core/crud-introduction -> ${base}/${version}/crud/ +[v2.2]: /${version}/core/crud -> ${base}/${version}/crud/ +[v2.2]: /${version}/core/query -> ${base}/${version}/core/read-operations/ +[v2.2]: /${version}/core/query-optimization -> ${base}/${version}/core/read-operations/ +[v2.2]: /${version}/core/distributed-queries -> ${base}/${version}/core/read-operations/ +[v2.2]: /${version}/core/data-modification -> ${base}/${version}/core/write-operations/ +[v2.2]: /${version}/core/bulk-inserts -> ${base}/${version}/core/write-operations/ +(v2.2-*]: /${version}/core/data-modeling -> ${base}/${version}/data-modeling/ +[v2.2]: /${version}/core/distributed-write-operations -> ${base}/${version}/core/write-operations/ +[v2.2]: /${version}/core/cursors -> ${base}/${version}/core/read-operations/#read-operations-cursors/ +[v2.2]: /${version}/core/query-plans -> ${base}/${version}/core/read-operations/#read-operations-query-optimization/ +[v2.2]: /${version}/core/record-padding -> ${base}/${version}/core/write-operations/#write-operations-padding-factor/ +[v2.2]: /${version}/core/read-preference-mechanics -> ${base}/${version}/applications/replication/#replica-set-read-preference/ +[v2.2]: /${version}/applications/crud/ -> ${base}/${version}/crud/ +[v2.2]: /${version}/tutorial/insert-documents -> ${base}/${version}/applications/create/ [v2.2]: /${version}/tutorial/query-documents -> ${base}/${version}/applications/read/ [v2.2]: /${version}/tutorial/project-fields-from-query-results -> ${base}/${version}/applications/read/ -[v2.2]: /${version}/tutorial/iterate-a-cursor -> ${base}/${version}/core/read-operations/#read-operations-cursors -[v2.2]: /${version}/tutorial/analyze-query-plan -> ${base}/${version}/core/read-operations -[v2.2]: /${version}/tutorial/modify-documents -> ${base}/${version}/applications/update +[v2.2]: /${version}/tutorial/iterate-a-cursor -> ${base}/${version}/core/read-operations/#read-operations-cursors/ +[v2.2]: /${version}/tutorial/analyze-query-plan -> ${base}/${version}/core/read-operations/ +[v2.2]: /${version}/tutorial/modify-documents -> ${base}/${version}/applications/update/ [v2.2]: /${version}/tutorial/remove-documents -> ${base}/${version}/applications/delete/ -[v2.2]: /${version}/reference/crud -> ${base}/${version}/crud -[v2.2]: /${version}/reference/replica-states -> ${base}/${version}/reference/replica-status -[v2.2]: /${version}/reference/bios-example-collection -> ${base}/${version}/crud -(v2.2-*]: /${version}/applications/map-reduce -> ${base}/${version}/core/map-reduce -[v2.2]: /${version}/core/map-reduce -> ${base}/${version}/applications/map-reduce -[v2.2]: /${version}/tutorial/map-reduce-examples -> ${base}/${version}/applications/map-reduce -[v2.2]: /${version}/core/map-reduce-sharded-collections -> ${base}/${version}/applications/map-reduce -[v2.2]: /${version}/tutorial/perform-incremental-map-reduce -> ${base}/${version}/applications/map-reduce -[v2.2]: /${version}/tutorial/troubleshoot-map-function -> ${base}/${version}/applications/map-reduce -[v2.2]: /${version}/tutorial/troubleshoot-reduce-function -> ${base}/${version}/applications/map-reduce -[v2.2]: /${version}/core/map-reduce-concurrency -> ${base}/${version}/applications/map-reduce -[v2.2]: /${version}/core/aggregation -> ${base}/${version}/applications/aggregation -[v2.2]: /${version}/reference/aggregation/operator-arithmetic -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/aggregation/operator-boolean -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/aggregation/operator-comparison -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/aggregation/operator-conditional -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/aggregation/operator-date -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/aggregation/operator-group -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/aggregation/operator-pipeline -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/aggregation/operator-string -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/aggregation/concat -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/aggregation/geoNear -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/aggregation/millisecond -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/aggregation-commands-comparison -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/aggregation/operators -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/aggregation/interface -> ${base}/${version}/aggregation -[v2.2]: /${version}/reference/command/nav-aggregation -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/aggregation/operator-nav -> ${base}/${version}/reference/aggregation -[v2.2]: /${version}/reference/method/nav-aggregation -> ${base}/${version}/reference/method -[v2.2]: /${version}/tutorial/aggregation-zip-code-data-set -> ${base}/${version}/tutorial/aggregation-examples -[v2.2]: /${version}/tutorial/aggregation-with-user-preference-data -> ${base}/${version}/tutorial/aggregation-examples -[v2.2]: /${version}/core/aggregation-pipeline -> ${base}/${version}/applications/aggregation -[v2.2]: /${version}/core/aggregation-mechanics -> ${base}/${version}/aggregation -[v2.2]: /${version}/core/aggregation-pipeline-optimization -> ${base}/${version}/applications/aggregation -[v2.2]: /${version}/core/aggregation-pipeline-limits -> ${base}/${version}/applications/aggregation -[v2.2]: /${version}/core/aggregation-pipeline-sharded-collections -> ${base}/${version}/applications/aggregation +[v2.2]: /${version}/reference/crud -> ${base}/${version}/crud/ +[v2.2]: /${version}/reference/replica-states -> ${base}/${version}/reference/replica-status/ +[v2.2]: /${version}/reference/bios-example-collection -> ${base}/${version}/crud/ +(v2.2-*]: /${version}/applications/map-reduce -> ${base}/${version}/core/map-reduce/ +[v2.2]: /${version}/core/map-reduce -> ${base}/${version}/applications/map-reduce/ +[v2.2]: /${version}/tutorial/map-reduce-examples -> ${base}/${version}/applications/map-reduce/ +[v2.2]: /${version}/core/map-reduce-sharded-collections -> ${base}/${version}/applications/map-reduce/ +[v2.2]: /${version}/tutorial/perform-incremental-map-reduce -> ${base}/${version}/applications/map-reduce/ +[v2.2]: /${version}/tutorial/troubleshoot-map-function -> ${base}/${version}/applications/map-reduce/ +[v2.2]: /${version}/tutorial/troubleshoot-reduce-function -> ${base}/${version}/applications/map-reduce/ +[v2.2]: /${version}/core/map-reduce-concurrency -> ${base}/${version}/applications/map-reduce/ +[v2.2]: /${version}/core/aggregation -> ${base}/${version}/applications/aggregation/ +[v2.2]: /${version}/reference/aggregation/operator-arithmetic -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/aggregation/operator-boolean -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/aggregation/operator-comparison -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/aggregation/operator-conditional -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/aggregation/operator-date -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/aggregation/operator-group -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/aggregation/operator-pipeline -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/aggregation/operator-string -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/aggregation/concat -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/aggregation/geoNear -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/aggregation/millisecond -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/aggregation-commands-comparison -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/aggregation/operators -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/aggregation/interface -> ${base}/${version}/aggregation/ +[v2.2]: /${version}/reference/command/nav-aggregation -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/aggregation/operator-nav -> ${base}/${version}/reference/aggregation/ +[v2.2]: /${version}/reference/method/nav-aggregation -> ${base}/${version}/reference/method/ +[v2.2]: /${version}/tutorial/aggregation-zip-code-data-set -> ${base}/${version}/tutorial/aggregation-examples/ +[v2.2]: /${version}/tutorial/aggregation-with-user-preference-data -> ${base}/${version}/tutorial/aggregation-examples/ +[v2.2]: /${version}/core/aggregation-pipeline -> ${base}/${version}/applications/aggregation/ +[v2.2]: /${version}/core/aggregation-mechanics -> ${base}/${version}/aggregation/ +[v2.2]: /${version}/core/aggregation-pipeline-optimization -> ${base}/${version}/applications/aggregation/ +[v2.2]: /${version}/core/aggregation-pipeline-limits -> ${base}/${version}/applications/aggregation/ +[v2.2]: /${version}/core/aggregation-pipeline-sharded-collections -> ${base}/${version}/applications/aggregation/ [v2.2]: /${version}/core/aggregation-introduction -> ${base}/${version}/aggregation/ -(v2.2-*]: /${version}/reference/simple-aggregation -> ${base}/${version}/core/single-purpose-aggregation -[v2.2]: /${version}/core/single-purpose-aggregation -> ${base}/${version}/reference/simple-aggregation -[v2.2]: /${version}/core/administration -> ${base}/${version}/administration -[v2.2]: /${version}/tutorial/manage-journaling -> ${base}/${version}/core/journaling -[v2.2]: /${version}/administration/tutorials -> ${base}/${version}/administration -[v2.2]: /${version}/administration/maintenance -> ${base}/${version}/tutorial/#basic-operations -[v2.2]: /${version}/administration/backup -> ${base}/${version}/tutorial/#basic-operations -[v2.2]: /${version}/reference/administration -> ${base}/${version}/administration -[v2.2]: /${version}/tutorial/journaling-mechanics -> ${base}/${version}/administration/journaling -(v2.2-*]: /${version}/administration/backups -> ${base}/${version}/administration/backup -[v2.2]: /${version}/administration/backup-sharded-clusters -> ${base}/${version}/sharding/#backup-and-restore-sharded-clusters -[v2.2]: /${version}/tutorial/troubleshoot-shared-clusters -> ${base}/${version}/faq/diagnostics -[v2.2]: /${version}/tutorial/troubleshoot-sharded-clusters -> ${base}/${version}/administration/sharded-clusters +(v2.2-*]: /${version}/reference/simple-aggregation -> ${base}/${version}/core/single-purpose-aggregation/ +[v2.2]: /${version}/core/single-purpose-aggregation -> ${base}/${version}/reference/simple-aggregation/ +[v2.2]: /${version}/core/administration -> ${base}/${version}/administration/ +[v2.2]: /${version}/tutorial/manage-journaling -> ${base}/${version}/core/journaling/ +[v2.2]: /${version}/administration/tutorials -> ${base}/${version}/administration/ +[v2.2]: /${version}/administration/maintenance -> ${base}/${version}/tutorial/#basic-operations/ +[v2.2]: /${version}/administration/backup -> ${base}/${version}/tutorial/#basic-operations/ +[v2.2]: /${version}/reference/administration -> ${base}/${version}/administration/ +[v2.2]: /${version}/tutorial/journaling-mechanics -> ${base}/${version}/administration/journaling/ +(v2.2-*]: /${version}/administration/backups -> ${base}/${version}/administration/backup/ +[v2.2]: /${version}/administration/backup-sharded-clusters -> ${base}/${version}/sharding/#backup-and-restore-sharded-clusters/ +[v2.2]: /${version}/tutorial/troubleshoot-shared-clusters -> ${base}/${version}/faq/diagnostics/ +[v2.2]: /${version}/tutorial/troubleshoot-sharded-clusters -> ${base}/${version}/administration/sharded-clusters/ (v2.2-*]: /${version}/applications/index.html -> ${base}/${version}/crud/ -(v3.0-*]: /${version}/administration/scripting -> ${base}/${version}/mongo -(v3.0-*]: /${version}/applications/aggregation -> ${base}/${version}/aggregation -(v2.2-*]: /${version}/applications/optimization -> ${base}/${version}/administration/optimization -[v2.2]: /${version}/administration/optimization -> ${base}/${version}/applications/optimization -[v2.2]: /${version}/tutorial/rotate-log-files -> ${base}/${version}/tutorial -[v2.2]: /${version}/tutorial/convert-sharded-cluster-to-replica-set -> ${base}/${version}/tutorial/deploy-shard-cluster -(v2.2-*]: /${version}/core/update -> ${base}/${version}/tutorial/update-documents -(v2.2-*]: /${version}/core/create -> ${base}/${version}/tutorial/insert-documents -[*]: /${version}/core/delete -> ${base}/${version}/core/write-operations-introduction/#delete -(v2.2-*]: /${version}/core/remove -> ${base}/${version}/tutorial/remove-documents -(v2.2-*]: /${version}/core/read -> ${base}/${version}/core/read-operations -(v2.2-*]: /${version}/core/read -> ${base}/${version}/core/read-operations -[*]: /${version}/reference/method/nav-aggregation -> ${base}/${version}/reference/aggregation/interface -[v2.2]: /${version}/tutorial/deploy-replica-set-for-testing -> ${base}/${version}/tutorial/deploy-replica-set -(v2.2-*]: /${version}/reference/operator/query-javascript -> ${base}/${version}/reference/operator/query-evaluation -[v2.2]: /${version}/reference/operator/query-evaluation -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/operator/nav-meta-query -> ${base}/${version}/reference/meta-query-operators -(v2.2-*]: /${version}/reference/operator/nav-meta-query -> ${base}/${version}/reference/operator/query-modifier -[v2.2]: /${version}/reference/operator/nav-query -> ${base}/${version}/reference/operators/#query-selectors -[v2.2]: /${version}/reference/operator/nav-update -> ${base}/${version}/reference/operators/#update -[v2.2]: /${version}/tutorial/migrate-sharded-cluster-to-new-hardware -> ${base}/${version}/administration/sharded-clusters -[v2.2]: /${version}/core/indexes-introduction -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-types -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-single -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-compound -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-multikey -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-text -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-hashed -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-properties -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-ttl -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-unique -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-sparse -> ${base}/${version}/core/indexes -[v2.2]: /${version}/core/index-creation -> ${base}/${version}/core/indexes -[v2.2]: /${version}/administration/indexes-creation -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/administration/indexes-management -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/administration/indexes-geo -> ${base}/${version}/administration/indexes -[v2.2]: /${version}/tutorial/build-a-2dsphere-index -> ${base}/${version}/core/geospatial-indexes -[v2.2]: /${version}/tutorial/query-a-2dsphere-index -> ${base}/${version}/applications/geospatial-indexes -[v2.2]: /${version}/tutorial/build-a-2d-index -> ${base}/${version}/core/geospatial-indexes -[v2.2]: /${version}/tutorial/query-a-2d-index -> ${base}/${version}/applications/geospatial-indexes -[v2.2]: /${version}/tutorial/build-a-geohaystack-index -> ${base}/${version}/core/geospatial-indexes -[v2.2]: /${version}/tutorial/query-a-geohaystack-index -> ${base}/${version}/applications/geospatial-indexes +(v3.0-*]: /${version}/administration/scripting -> ${base}/${version}/mongo/ +(v3.0-*]: /${version}/applications/aggregation -> ${base}/${version}/aggregation/ +(v2.2-*]: /${version}/applications/optimization -> ${base}/${version}/administration/optimization/ +[v2.2]: /${version}/administration/optimization -> ${base}/${version}/applications/optimization/ +[v2.2]: /${version}/tutorial/rotate-log-files -> ${base}/${version}/tutorial/ +[v2.2]: /${version}/tutorial/convert-sharded-cluster-to-replica-set -> ${base}/${version}/tutorial/deploy-shard-cluster/ +(v2.2-*]: /${version}/core/update -> ${base}/${version}/tutorial/update-documents/ +(v2.2-*]: /${version}/core/create -> ${base}/${version}/tutorial/insert-documents/ +[*]: /${version}/core/delete -> ${base}/${version}/core/write-operations-introduction/#delete/ +(v2.2-*]: /${version}/core/remove -> ${base}/${version}/tutorial/remove-documents/ +(v2.2-*]: /${version}/core/read -> ${base}/${version}/core/read-operations/ +(v2.2-*]: /${version}/core/read -> ${base}/${version}/core/read-operations/ +[*]: /${version}/reference/method/nav-aggregation -> ${base}/${version}/reference/aggregation/interface/ +[v2.2]: /${version}/tutorial/deploy-replica-set-for-testing -> ${base}/${version}/tutorial/deploy-replica-set/ +(v2.2-*]: /${version}/reference/operator/query-javascript -> ${base}/${version}/reference/operator/query-evaluation/ +[v2.2]: /${version}/reference/operator/query-evaluation -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/operator/nav-meta-query -> ${base}/${version}/reference/meta-query-operators/ +(v2.2-*]: /${version}/reference/operator/nav-meta-query -> ${base}/${version}/reference/operator/query-modifier/ +[v2.2]: /${version}/reference/operator/nav-query -> ${base}/${version}/reference/operators/#query-selectors/ +[v2.2]: /${version}/reference/operator/nav-update -> ${base}/${version}/reference/operators/#update/ +[v2.2]: /${version}/tutorial/migrate-sharded-cluster-to-new-hardware -> ${base}/${version}/administration/sharded-clusters/ +[v2.2]: /${version}/core/indexes-introduction -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-types -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-single -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-compound -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-multikey -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-text -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-hashed -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-properties -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-ttl -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-unique -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-sparse -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/core/index-creation -> ${base}/${version}/core/indexes/ +[v2.2]: /${version}/administration/indexes-creation -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/administration/indexes-management -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/administration/indexes-geo -> ${base}/${version}/administration/indexes/ +[v2.2]: /${version}/tutorial/build-a-2dsphere-index -> ${base}/${version}/core/geospatial-indexes/ +[v2.2]: /${version}/tutorial/query-a-2dsphere-index -> ${base}/${version}/applications/geospatial-indexes/ +[v2.2]: /${version}/tutorial/build-a-2d-index -> ${base}/${version}/core/geospatial-indexes/ +[v2.2]: /${version}/tutorial/query-a-2d-index -> ${base}/${version}/applications/geospatial-indexes/ +[v2.2]: /${version}/tutorial/build-a-geohaystack-index -> ${base}/${version}/core/geospatial-indexes/ +[v2.2]: /${version}/tutorial/query-a-geohaystack-index -> ${base}/${version}/applications/geospatial-indexes/ [v2.2]: /${version}/administration/indexes-text -> ${base}/${version}/core/indexes/ -[v2.2]: /${version}/reference/indexes -> ${base}/${version}/indexes -(v2.2-*]: /${version}/tutorial/manage-chunks-in-sharded-cluster -> ${base}/${version}/administration/sharded-cluster-maintenance -[v2.2]: /${version}/tutorial/create-chunks-in-sharded-cluster -> ${base}/${version}/tutorial/manage-chunks-in-sharded-cluster -[v2.2]: /${version}/tutorial/migrate-chunks-in-sharded-cluster -> ${base}/${version}/tutorial/manage-chunks-in-sharded-cluster -[v2.2]: /${version}/tutorial/modify-chunk-size-in-sharded-cluster -> ${base}/${version}/tutorial/manage-chunks-in-sharded-cluster -[v2.2]: /${version}/tutorial/split-chunks-in-sharded-cluster -> ${base}/${version}/tutorial/manage-chunks-in-sharded-cluster -[v2.2]: /${version}/tutorial/restore-replica-set-from-backup -> ${base}/${version}/administration/backups -(v2.2-*]: /${version}/release-notes/2.4-overview -> ${base}/${version}/release-notes/2.4 +[v2.2]: /${version}/reference/indexes -> ${base}/${version}/indexes/ +(v2.2-*]: /${version}/tutorial/manage-chunks-in-sharded-cluster -> ${base}/${version}/administration/sharded-cluster-maintenance/ +[v2.2]: /${version}/tutorial/create-chunks-in-sharded-cluster -> ${base}/${version}/tutorial/manage-chunks-in-sharded-cluster/ +[v2.2]: /${version}/tutorial/migrate-chunks-in-sharded-cluster -> ${base}/${version}/tutorial/manage-chunks-in-sharded-cluster/ +[v2.2]: /${version}/tutorial/modify-chunk-size-in-sharded-cluster -> ${base}/${version}/tutorial/manage-chunks-in-sharded-cluster/ +[v2.2]: /${version}/tutorial/split-chunks-in-sharded-cluster -> ${base}/${version}/tutorial/manage-chunks-in-sharded-cluster/ +[v2.2]: /${version}/tutorial/restore-replica-set-from-backup -> ${base}/${version}/administration/backups/ +(v2.2-*]: /${version}/release-notes/2.4-overview -> ${base}/${version}/release-notes/2.4/ (v2.2-*]: /${version}/tutorial/aggregation-examples -> ${base}/${version}/applications/aggregation/ -[v2.2]: /${version}/core/introduction -> ${base}/${version}/installation -[v2.2]: /${version}/administration/install-on-linux -> ${base}/${version}/installation -[*]: /${version}/tutorial/install-mongodb-on-debian-or-ubuntu-linux -> ${base}/${version}/installation -(v2.2-*]: /${version}/core/text-search -> ${base}/${version}/core/index-text -(v2.2-*]: /${version}/reference/operator/meta-query -> ${base}/${version}/reference/operator/query-modifier -(v2.2-*]: /${version}/reference/aggregation/operator-comparison -> ${base}/${version}/reference/operator/aggregation-comparison -(v2.2-*]: /${version}/reference/aggregation/operator-arithmetic -> ${base}/${version}/reference/operator/aggregation-arithmetic -(v2.2-*]: /${version}/reference/aggregation/operator-pipeline -> ${base}/${version}/reference/operator/aggregation-pipeline -(v2.2-*]: /${version}/reference/aggregation/operator-group -> ${base}/${version}/reference/operator/aggregation-group -(v2.2-*]: /${version}/reference/aggregation/operator-nav -> ${base}/${version}/reference/operator/aggregation -(v2.2-*]: /${version}/reference/aggregation/operator-date -> ${base}/${version}/reference/operator/aggregation-date -(v2.2-*]: /${version}/reference/aggregation/operator-conditional -> ${base}/${version}/reference/operator/aggregation-conditional -(v2.2-*]: /${version}/reference/aggregation/operator-boolean -> ${base}/${version}/reference/operator/aggregation-boolean -(v2.2-*]: /${version}/reference/replica-commands -> ${base}/${version}/reference/replication -(v2.2-*]: /${version}/reference/sharding-commands -> ${base}/${version}/reference/sharding -[*]: /${version}/reference/system-defined-roles -> ${base}/${version}/reference/built-in-roles -[v2.2]: /${version}/reference/program/index.html -> ${base}/${version}/reference/components/index.html -[v2.2]: /${version}/tutorial/backup-with-mongodump -> ${base}/${version}/tutorial/backup-databases-with-binary-database-dumps -[v2.2]: /${version}/tutorial/backup-with-filesystem-snapshots -> ${base}/${version}/tutorial/backup-databases-with-filesystem-snapshots -(v2.2-*]: /${version}/tutorial/backup-databases-with-binary-database-dumps -> ${base}/${version}/tutorial/backup-with-mongodump -(v2.2-*]: /${version}/tutorial/backup-databases-with-filesystem-snapshots -> ${base}/${version}/tutorial/backup-with-filesystem-snapshots -(v2.2-*]: /${version}/tutorial/back-up-and-restore-with-mongodb-tools -> ${base}/${version}/tutorial/backup-with-mongodump -(v2.2-*]: /${version}/tutorial/back-up-databases-with-filesystem-snapshots -> ${base}/${version}/tutorial/backup-with-filesystem-snapshots -(v2.2-*]: /${version}/tutorial/backup-and-restore-with-binary-database-dumps -> ${base}/${version}/tutorial/backup-with-mongodump -(v2.2-*]: /${version}/tutorial/backup-and-restore-with-filesystem-snapshots -> ${base}/${version}/tutorial/backup-with-filesystem-snapshots -[v2.2]: /${version}/reference/command/shardConnPoolStats -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-diagnostic -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-administration -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-aggregation -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-authentication -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-crud -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-geospatial -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-internal -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-replication -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-role-management -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-sharding -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-testing -> ${base}/${version}/reference/command -[v2.2]: /${version}/reference/command/nav-user-management -> ${base}/${version}/reference/command -[*]: /${version}/tutorial/control-access-to-document-content-with-multiple-tag-sets -> ${base}/${version}/tutorial/control-access-to-document-content-with-field-level-security -[v2.4]: /${version}/release-notes/2.4-changelong -> ${base}/${version}/release-notes/2.4-changelog -(v2.4-*]: /${version}/tutorial/copy-databases-between-instances -> ${base}/${version}/reference/command/copydb -[*-v2.4]: /${version}/reference/method/rs.printReplicationInfo -> ${base}/${version}/reference/method/rs.status -[*-v2.4]: /${version}/reference/method/rs.printSlaveReplicationInfo -> ${base}/${version}/reference/method/rs.status -[*-v2.4]: /${version}/reference/operator/update/mul -> ${base}/${version}/reference/operators/#update -[*-v2.4]: /${version}/reference/method/cursor.maxTimeMS -> ${base}/${version}/reference/method/js-cursor -[*-v2.4]: /${version}/tutorial/terminate-running-operations -> ${base}/${version}/administration -[*-v2.4]: /${version}/reference/operator/meta/maxTimeMS -> ${base}/${version}/reference/operator/query-modifier -[*-v2.4]: /${version}/reference/operator/aggregation/literal -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation/map -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation/let -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation/size -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/release-notes/2.6-upgrade -> ${base}/${version}/release-notes -[*-v2.4]: /${version}/release-notes/2.6 -> ${base}/${version}/release-notes -[*-v2.4]: /${version}/release-notes/2.6-changes -> ${base}/${version}/release-notes -[*-v2.4]: /${version}/release-notes/2.6 -> ${base}/${version}/release-notes/2.6 -[*-v2.4]: /${version}/reference/operator/update/min -> ${base}/${version}/reference/operators/#update -[*-v2.4]: /${version}/reference/operator/update/max -> ${base}/${version}/reference/operators/#update -[*-v2.4]: /${version}/reference/operator/update/currentDate -> ${base}/${version}/reference/operators/#update -[*-v2.4]: /${version}/reference/operator/aggregation-array -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation-projection -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/update/position -> ${base}/${version}/reference/operators/#update -[*-v2.4]: /${version}/tutorial/configure-x509 -> ${base}/${version}/tutorial/enable-authentication -[*-v2.4]: /${version}/tutorial/configure-x509-client-authentication -> ${base}/${version}/tutorial/enable-authentication -[*-v2.4]: /${version}/tutorial/configure-x509-member-authentication -> ${base}/${version}/tutorial/enable-authentication -(v2.4-*]: /${version}/tutorial/configure-x509 -> ${base}/${version}/tutorial/configure-x509-client-authentication -[*-v2.4]: /${version}/core/auditing -> ${base}/${version}/core/security -[*-v2.4]: /${version}/reference/audit-message -> ${base}/${version}/core/security -[*-v2.4]: /${version}/reference/command/logApplicationMessage -> ${base}/${version}/core/security -[*-v2.4]: /${version}/reference/command/mergeChunks -> ${base}/${version}/core/sharding-balancing -[*-v2.4]: /${version}/tutorial/configure-auditing -> ${base}/${version}/core/security -[*-v2.4]: /${version}/reference/command/nav-auditing -> ${base}/${version}/reference/command -[*-v2.4]: /${version}/reference/command/createRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/createUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/dropRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/dropAllRolesFromDatabase -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/dropUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/dropAllUsersFromDatabase -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/grantPrivilegesToRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/grantRolesToRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/grantRolesToUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/nav-role-management -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/nav-user-management -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/revokePrivilegesFromRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/revokeRolesFromRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/revokeRolesFromUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/rolesInfo -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/updateRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/updateUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/command/usersInfo -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/tutorial/configure-ldap-sasl-authentication -> ${base}/${version}/security -(v2.4-*]: /${version}/tutorial/configure-ldap-sasl-authentication -> ${base}/${version}/tutorial/configure-ldap-sasl-openldap -[*-v2.4]: /${version}/tutorial/configure-ldap-sasl-openldap -> ${base}/${version}/security -[*-v2.4]: /${version}/tutorial/configure-ldap-sasl-activedirectory -> ${base}/${version}/security -[*-v2.4]: /${version}/tutorial/upgrade-cluster-to-ssl -> ${base}/${version}/tutorial/configure-ssl -[*-v2.4]: /${version}/reference/command/cleanupOrphaned -> ${base}/${version}/administration/sharded-clusters -[*-v2.4]: /${version}/tutorial/define-roles -> ${base}/${version}/administration/security-access-control -[*-v2.4]: /${version}/tutorial/view-roles -> ${base}/${version}/administration/security-access-control -[*-v2.4]: /${version}/reference/command/delete -> ${base}/${version}/reference/command/nav-crud -[*-v2.4]: /${version}/reference/command/insert -> ${base}/${version}/reference/command/nav-crud -[*-v2.4]: /${version}/reference/command/update -> ${base}/${version}/reference/command/nav-crud -[*-v2.4]: /${version}/reference/operator/aggregation/setEquals -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation/setIntersection -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation/setDifference -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation/setIsSubset -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation/anyElementTrue -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation/setUnion -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation/allElementsTrue -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/reference/resource-document -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/privilege-actions -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/system-defined-roles -> ${base}/${version}/reference/user-privileges -(v2.4-*]: /${version}/reference/user-privileges -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/system-roles-collection -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/system-users-collection -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/tutorial/change-user-privileges -> ${base}/${version}/reference/user-privileges -[*-v2.4]: /${version}/reference/method/db.getUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.getUsers -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.createUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/js-role-management -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/js-user-management -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.dropAllUsers -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.grantRolesToUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.dropUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.grantRolesToRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.revokeRolesFromUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.revokeRolesFromRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.updateUser -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.dropRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.dropAllRoles -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.revokePrivilegesFromRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.createRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.updateRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/method/db.grantPrivilegesToRole -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/operator/aggregation/redact -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/tutorial/implement-field-level-redaction -> ${base}/${version}/security -[*-v2.4]: /${version}/tutorial/assign-role-to-user -> ${base}/${version}/core/access-control -[*-v2.4]: /${version}/tutorial/verify-user-privileges -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/tutorial/perform-maintenance-on-replica-set-members -> ${base}/${version}/administration/replica-set-maintenance -[*-v2.4]: /${version}/reference/method/Bulk -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/Bulk.insert -> ${base}/${version}/reference/method/db.collection.insert -[*-v2.4]: /${version}/reference/method/Bulk.find -> ${base}/${version}/reference/method/db.collection.update -[*-v2.4]: /${version}/reference/method/Bulk.find.removeOne -> ${base}/${version}/reference/method/db.collection.remove -[*-v2.4]: /${version}/reference/method/Bulk.find.remove -> ${base}/${version}/reference/method/db.collection.remove -[*-v2.4]: /${version}/reference/method/Bulk.find.replaceOne -> ${base}/${version}/reference/method/db.collection.update -[*-v2.4]: /${version}/reference/method/Bulk.find.updateOne -> ${base}/${version}/reference/method/db.collection.update -[*-v2.4]: /${version}/reference/method/Bulk.find.update -> ${base}/${version}/reference/method/db.collection.update -[*-v2.4]: /${version}/reference/method/Bulk.find.upsert -> ${base}/${version}/reference/method/db.collection.update -[*-v2.4]: /${version}/reference/method/Bulk.find.execute -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/js-bulk -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/db.collection.initializeOrderedBulkOp -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/db.collection.initializeUnorderedBulkOp -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/command/planCacheSetFilter -> ${base}/${version}/reference/command -[*-v2.4]: /${version}/reference/command/planCacheClearFilters -> ${base}/${version}/reference/command -[*-v2.4]: /${version}/reference/command/planCacheListFilters -> ${base}/${version}/reference/command -[*-v2.4]: /${version}/core/index-intersection -> ${base}/${version}/core/indexes -[*-v2.4]: /${version}/reference/method/db.collection.getPlanCache -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/PlanCache.help -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/PlanCache.listQueryShapes -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/PlanCache.getPlansByQuery -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/PlanCache.clearPlansByQuery -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/PlanCache.clear -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/js-plan-cache -> ${base}/${version}/reference/method -(v2.4-*]: /${version}/tutorial/search-for-text -> ${base}/${version}/reference/operator/query/text -[*-v2.4]: /${version}/reference/operator/query/text -> ${base}/${version}/reference/command/text -[*-v2.4]: /${version}/reference/operator/projection/meta -> ${base}/${version}/reference/command/text -[*-v2.4]: /${version}/reference/operator/aggregation/meta -> ${base}/${version}/aggregation -[*-v2.4]: /${version}/reference/operator/aggregation-text-search -> ${base}/${version}/aggregation -(v2.4-*]: /${version}/tutorial/search-for-text -> ${base}/${version}/reference/operator/query/text -[*-v2.4]: /${version}/source/tutorial/text-search-in-aggregation -> ${base}/${version}/reference/command/text -[*-v2.4]: /${version}/source/reference/text-search-languages -> ${base}/${version}/reference/command/text -[*-v2.4]: /${version}/source/tutorial/authenticate-as-client -> ${base}/${version}/administration/security-access-control -[*-v2.4]: /${version}/core/authentication -> ${base}/${version}/core/access-control -[*-v2.4]: /${version}/core/authorization -> ${base}/${version}/core/access-control -(v2.4-*]: /${version}/core/access-control -> ${base}/${version}/core/authentication -(v2.4-*]: /${version}/core/inter-process-authentication -> ${base}/${version}/core/authentication -(v2.4-*]: /${version}/core/sharded-cluster-security -> ${base}/${version}/core/authentication -[*-v2.4]: /${version}/reference/command/planCacheClear -> ${base}/${version}/reference/command -[*-v2.4]: /${version}/reference/command/planCacheListPlans -> ${base}/${version}/reference/command -[*-v2.4]: /${version}/reference/command/planCacheListQueryShapes -> ${base}/${version}/reference/command -[*-v2.4]: /${version}/reference/command/nav-plan-cache -> ${base}/${version}/reference/command -[*-v2.4]: /${version}/core/kerberos -> ${base}/${version}/tutorial/control-access-to-mongodb-with-kerberos-authentication -[*-v2.4]: /${version}/tutorial/troubleshoot-kerberos -> ${base}/${version}/tutorial/control-access-to-mongodb-with-kerberos-authentication -[*-v2.4]: /${version}/tutorial/control-access-to-mongodb-windows-with-kerberos-authentication -> ${base}/${version}/tutorial/control-access-to-mongodb-with-kerberos-authentication -[*-v2.4]: /${version}/administration/security-checklist -> ${base}/${version}/core/security-introduction -[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-ubuntu -> ${base}/${version}/tutorial/install-mongodb-enterprise -[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-red-hat-or-centos -> ${base}/${version}/tutorial/install-mongodb-enterprise -[*-v2.4]: /${version}/reference/method/db.upgradeCheck -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/db.upgradeCheckAllDBs -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/command/invalidateUserCache -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/reference/aggregation-variables -> ${base}/${version}/reference/operator/aggregation -(v2.4-*]: /${version}/core/record-padding -> ${base}/${version}/core/storage -[*-v2.4]: /${version}/core/storage -> ${base}/${version}/core/record-padding -[*-v2.4]: /${version}/release-notes/2.6-compatibility -> ${base}/${version}/release-notes -[*-v2.4]: /${version}/release-notes/2.6-downgrade -> ${base}/${version}/release-notes -[*-v2.4]: /${version}/release-notes/2.6-upgrade-authorization -> ${base}/${version}/release-notes -[*-v2.4]: /${version}/reference/command/createIndexes -> ${base}/${version}/reference/method/db.collection.ensureIndex -[*-v2.4]: /${version}/reference/command/parallelCollectionScan -> ${base}/${version}/reference/command -[*-v2.4]: /${version}/reference/command/authSchemaUpgrade -> ${base}/${version}/reference/security -[*-v2.4]: /${version}/administration/install-enterprise -> ${base}/${version}/tutorial/install-mongodb-enterprise -(v2.4-*]: /${version}/tutorial/install-mongodb-enterprise -> ${base}/${version}/administration/install-enterprise -[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-amazon -> ${base}/${version}/tutorial/install-mongodb-enterprise -[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-suse -> ${base}/${version}/tutorial/install-mongodb-enterprise -[*-v2.4]: /${version}/reference/method/WriteResult -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/WriteResult.hasWriteError -> ${base}/${version}/reference/method -[*-v2.4]: /${version}/reference/method/WriteResult.hasWriteConcernError -> ${base}/${version}/reference/method -(v2.4-*]: /${version}/tutorial/return-text-queries-using-only-text-index -> ${base}/${version}/core/index-text -[*-v2.4]: /${version}/tutorial/perform-maintence-on-replica-set-members -> ${base}/${version}/administration/replica-set-maintenance +[v2.2]: /${version}/core/introduction -> ${base}/${version}/installation/ +[v2.2]: /${version}/administration/install-on-linux -> ${base}/${version}/installation/ +[*]: /${version}/tutorial/install-mongodb-on-debian-or-ubuntu-linux -> ${base}/${version}/installation/ +(v2.2-*]: /${version}/core/text-search -> ${base}/${version}/core/index-text/ +(v2.2-*]: /${version}/reference/operator/meta-query -> ${base}/${version}/reference/operator/query-modifier/ +(v2.2-*]: /${version}/reference/aggregation/operator-comparison -> ${base}/${version}/reference/operator/aggregation-comparison/ +(v2.2-*]: /${version}/reference/aggregation/operator-arithmetic -> ${base}/${version}/reference/operator/aggregation-arithmetic/ +(v2.2-*]: /${version}/reference/aggregation/operator-pipeline -> ${base}/${version}/reference/operator/aggregation-pipeline/ +(v2.2-*]: /${version}/reference/aggregation/operator-group -> ${base}/${version}/reference/operator/aggregation-group/ +(v2.2-*]: /${version}/reference/aggregation/operator-nav -> ${base}/${version}/reference/operator/aggregation/ +(v2.2-*]: /${version}/reference/aggregation/operator-date -> ${base}/${version}/reference/operator/aggregation-date/ +(v2.2-*]: /${version}/reference/aggregation/operator-conditional -> ${base}/${version}/reference/operator/aggregation-conditional/ +(v2.2-*]: /${version}/reference/aggregation/operator-boolean -> ${base}/${version}/reference/operator/aggregation-boolean/ +(v2.2-*]: /${version}/reference/replica-commands -> ${base}/${version}/reference/replication/ +(v2.2-*]: /${version}/reference/sharding-commands -> ${base}/${version}/reference/sharding/ +[*]: /${version}/reference/system-defined-roles -> ${base}/${version}/reference/built-in-roles/ +[v2.2]: /${version}/reference/program/index.html -> ${base}/${version}/reference/components/index.html/ +[v2.2]: /${version}/tutorial/backup-with-mongodump -> ${base}/${version}/tutorial/backup-databases-with-binary-database-dumps/ +[v2.2]: /${version}/tutorial/backup-with-filesystem-snapshots -> ${base}/${version}/tutorial/backup-databases-with-filesystem-snapshots/ +(v2.2-*]: /${version}/tutorial/backup-databases-with-binary-database-dumps -> ${base}/${version}/tutorial/backup-with-mongodump/ +(v2.2-*]: /${version}/tutorial/backup-databases-with-filesystem-snapshots -> ${base}/${version}/tutorial/backup-with-filesystem-snapshots/ +(v2.2-*]: /${version}/tutorial/back-up-and-restore-with-mongodb-tools -> ${base}/${version}/tutorial/backup-with-mongodump/ +(v2.2-*]: /${version}/tutorial/back-up-databases-with-filesystem-snapshots -> ${base}/${version}/tutorial/backup-with-filesystem-snapshots/ +(v2.2-*]: /${version}/tutorial/backup-and-restore-with-binary-database-dumps -> ${base}/${version}/tutorial/backup-with-mongodump/ +(v2.2-*]: /${version}/tutorial/backup-and-restore-with-filesystem-snapshots -> ${base}/${version}/tutorial/backup-with-filesystem-snapshots/ +[v2.2]: /${version}/reference/command/shardConnPoolStats -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-diagnostic -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-administration -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-aggregation -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-authentication -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-crud -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-geospatial -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-internal -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-replication -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-role-management -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-sharding -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-testing -> ${base}/${version}/reference/command/ +[v2.2]: /${version}/reference/command/nav-user-management -> ${base}/${version}/reference/command/ +[*]: /${version}/tutorial/control-access-to-document-content-with-multiple-tag-sets -> ${base}/${version}/tutorial/control-access-to-document-content-with-field-level-security/ +[v2.4]: /${version}/release-notes/2.4-changelong -> ${base}/${version}/release-notes/2.4-changelog/ +(v2.4-*]: /${version}/tutorial/copy-databases-between-instances -> ${base}/${version}/reference/command/copydb/ +[*-v2.4]: /${version}/reference/method/rs.printReplicationInfo -> ${base}/${version}/reference/method/rs.status/ +[*-v2.4]: /${version}/reference/method/rs.printSlaveReplicationInfo -> ${base}/${version}/reference/method/rs.status/ +[*-v2.4]: /${version}/reference/operator/update/mul -> ${base}/${version}/reference/operators/#update/ +[*-v2.4]: /${version}/reference/method/cursor.maxTimeMS -> ${base}/${version}/reference/method/js-cursor/ +[*-v2.4]: /${version}/tutorial/terminate-running-operations -> ${base}/${version}/administration/ +[*-v2.4]: /${version}/reference/operator/meta/maxTimeMS -> ${base}/${version}/reference/operator/query-modifier/ +[*-v2.4]: /${version}/reference/operator/aggregation/literal -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation/map -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation/let -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation/size -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/release-notes/2.6-upgrade -> ${base}/${version}/release-notes/ +[*-v2.4]: /${version}/release-notes/2.6 -> ${base}/${version}/release-notes/ +[*-v2.4]: /${version}/release-notes/2.6-changes -> ${base}/${version}/release-notes/ +[*-v2.4]: /${version}/release-notes/2.6 -> ${base}/${version}/release-notes/2.6/ +[*-v2.4]: /${version}/reference/operator/update/min -> ${base}/${version}/reference/operators/#update/ +[*-v2.4]: /${version}/reference/operator/update/max -> ${base}/${version}/reference/operators/#update/ +[*-v2.4]: /${version}/reference/operator/update/currentDate -> ${base}/${version}/reference/operators/#update/ +[*-v2.4]: /${version}/reference/operator/aggregation-array -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation-projection -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/update/position -> ${base}/${version}/reference/operators/#update/ +[*-v2.4]: /${version}/tutorial/configure-x509 -> ${base}/${version}/tutorial/enable-authentication/ +[*-v2.4]: /${version}/tutorial/configure-x509-client-authentication -> ${base}/${version}/tutorial/enable-authentication/ +[*-v2.4]: /${version}/tutorial/configure-x509-member-authentication -> ${base}/${version}/tutorial/enable-authentication/ +(v2.4-*]: /${version}/tutorial/configure-x509 -> ${base}/${version}/tutorial/configure-x509-client-authentication/ +[*-v2.4]: /${version}/core/auditing -> ${base}/${version}/core/security/ +[*-v2.4]: /${version}/reference/audit-message -> ${base}/${version}/core/security/ +[*-v2.4]: /${version}/reference/command/logApplicationMessage -> ${base}/${version}/core/security/ +[*-v2.4]: /${version}/reference/command/mergeChunks -> ${base}/${version}/core/sharding-balancing/ +[*-v2.4]: /${version}/tutorial/configure-auditing -> ${base}/${version}/core/security/ +[*-v2.4]: /${version}/reference/command/nav-auditing -> ${base}/${version}/reference/command/ +[*-v2.4]: /${version}/reference/command/createRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/createUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/dropRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/dropAllRolesFromDatabase -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/dropUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/dropAllUsersFromDatabase -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/grantPrivilegesToRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/grantRolesToRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/grantRolesToUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/nav-role-management -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/nav-user-management -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/revokePrivilegesFromRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/revokeRolesFromRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/revokeRolesFromUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/rolesInfo -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/updateRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/updateUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/command/usersInfo -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/tutorial/configure-ldap-sasl-authentication -> ${base}/${version}/security/ +(v2.4-*]: /${version}/tutorial/configure-ldap-sasl-authentication -> ${base}/${version}/tutorial/configure-ldap-sasl-openldap/ +[*-v2.4]: /${version}/tutorial/configure-ldap-sasl-openldap -> ${base}/${version}/security/ +[*-v2.4]: /${version}/tutorial/configure-ldap-sasl-activedirectory -> ${base}/${version}/security/ +[*-v2.4]: /${version}/tutorial/upgrade-cluster-to-ssl -> ${base}/${version}/tutorial/configure-ssl/ +[*-v2.4]: /${version}/reference/command/cleanupOrphaned -> ${base}/${version}/administration/sharded-clusters/ +[*-v2.4]: /${version}/tutorial/define-roles -> ${base}/${version}/administration/security-access-control/ +[*-v2.4]: /${version}/tutorial/view-roles -> ${base}/${version}/administration/security-access-control/ +[*-v2.4]: /${version}/reference/command/delete -> ${base}/${version}/reference/command/nav-crud/ +[*-v2.4]: /${version}/reference/command/insert -> ${base}/${version}/reference/command/nav-crud/ +[*-v2.4]: /${version}/reference/command/update -> ${base}/${version}/reference/command/nav-crud/ +[*-v2.4]: /${version}/reference/operator/aggregation/setEquals -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation/setIntersection -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation/setDifference -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation/setIsSubset -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation/anyElementTrue -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation/setUnion -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation/allElementsTrue -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/reference/resource-document -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/privilege-actions -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/system-defined-roles -> ${base}/${version}/reference/user-privileges/ +(v2.4-*]: /${version}/reference/user-privileges -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/system-roles-collection -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/system-users-collection -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/tutorial/change-user-privileges -> ${base}/${version}/reference/user-privileges/ +[*-v2.4]: /${version}/reference/method/db.getUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.getUsers -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.createUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/js-role-management -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/js-user-management -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.dropAllUsers -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.grantRolesToUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.dropUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.grantRolesToRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.revokeRolesFromUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.revokeRolesFromRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.updateUser -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.dropRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.dropAllRoles -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.revokePrivilegesFromRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.createRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.updateRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/method/db.grantPrivilegesToRole -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/operator/aggregation/redact -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/tutorial/implement-field-level-redaction -> ${base}/${version}/security/ +[*-v2.4]: /${version}/tutorial/assign-role-to-user -> ${base}/${version}/core/access-control/ +[*-v2.4]: /${version}/tutorial/verify-user-privileges -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/tutorial/perform-maintenance-on-replica-set-members -> ${base}/${version}/administration/replica-set-maintenance/ +[*-v2.4]: /${version}/reference/method/Bulk -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/Bulk.insert -> ${base}/${version}/reference/method/db.collection.insert/ +[*-v2.4]: /${version}/reference/method/Bulk.find -> ${base}/${version}/reference/method/db.collection.update/ +[*-v2.4]: /${version}/reference/method/Bulk.find.removeOne -> ${base}/${version}/reference/method/db.collection.remove/ +[*-v2.4]: /${version}/reference/method/Bulk.find.remove -> ${base}/${version}/reference/method/db.collection.remove/ +[*-v2.4]: /${version}/reference/method/Bulk.find.replaceOne -> ${base}/${version}/reference/method/db.collection.update/ +[*-v2.4]: /${version}/reference/method/Bulk.find.updateOne -> ${base}/${version}/reference/method/db.collection.update/ +[*-v2.4]: /${version}/reference/method/Bulk.find.update -> ${base}/${version}/reference/method/db.collection.update/ +[*-v2.4]: /${version}/reference/method/Bulk.find.upsert -> ${base}/${version}/reference/method/db.collection.update/ +[*-v2.4]: /${version}/reference/method/Bulk.find.execute -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/js-bulk -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/db.collection.initializeOrderedBulkOp -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/db.collection.initializeUnorderedBulkOp -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/command/planCacheSetFilter -> ${base}/${version}/reference/command/ +[*-v2.4]: /${version}/reference/command/planCacheClearFilters -> ${base}/${version}/reference/command/ +[*-v2.4]: /${version}/reference/command/planCacheListFilters -> ${base}/${version}/reference/command/ +[*-v2.4]: /${version}/core/index-intersection -> ${base}/${version}/core/indexes/ +[*-v2.4]: /${version}/reference/method/db.collection.getPlanCache -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/PlanCache.help -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/PlanCache.listQueryShapes -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/PlanCache.getPlansByQuery -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/PlanCache.clearPlansByQuery -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/PlanCache.clear -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/js-plan-cache -> ${base}/${version}/reference/method/ +(v2.4-*]: /${version}/tutorial/search-for-text -> ${base}/${version}/reference/operator/query/text/ +[*-v2.4]: /${version}/reference/operator/query/text -> ${base}/${version}/reference/command/text/ +[*-v2.4]: /${version}/reference/operator/projection/meta -> ${base}/${version}/reference/command/text/ +[*-v2.4]: /${version}/reference/operator/aggregation/meta -> ${base}/${version}/aggregation/ +[*-v2.4]: /${version}/reference/operator/aggregation-text-search -> ${base}/${version}/aggregation/ +(v2.4-*]: /${version}/tutorial/search-for-text -> ${base}/${version}/reference/operator/query/text/ +[*-v2.4]: /${version}/source/tutorial/text-search-in-aggregation -> ${base}/${version}/reference/command/text/ +[*-v2.4]: /${version}/source/reference/text-search-languages -> ${base}/${version}/reference/command/text/ +[*-v2.4]: /${version}/source/tutorial/authenticate-as-client -> ${base}/${version}/administration/security-access-control/ +[*-v2.4]: /${version}/core/authentication -> ${base}/${version}/core/access-control/ +[*-v2.4]: /${version}/core/authorization -> ${base}/${version}/core/access-control/ +(v2.4-*]: /${version}/core/access-control -> ${base}/${version}/core/authentication/ +(v2.4-*]: /${version}/core/inter-process-authentication -> ${base}/${version}/core/authentication/ +(v2.4-*]: /${version}/core/sharded-cluster-security -> ${base}/${version}/core/authentication/ +[*-v2.4]: /${version}/reference/command/planCacheClear -> ${base}/${version}/reference/command/ +[*-v2.4]: /${version}/reference/command/planCacheListPlans -> ${base}/${version}/reference/command/ +[*-v2.4]: /${version}/reference/command/planCacheListQueryShapes -> ${base}/${version}/reference/command/ +[*-v2.4]: /${version}/reference/command/nav-plan-cache -> ${base}/${version}/reference/command/ +[*-v2.4]: /${version}/core/kerberos -> ${base}/${version}/tutorial/control-access-to-mongodb-with-kerberos-authentication/ +[*-v2.4]: /${version}/tutorial/troubleshoot-kerberos -> ${base}/${version}/tutorial/control-access-to-mongodb-with-kerberos-authentication/ +[*-v2.4]: /${version}/tutorial/control-access-to-mongodb-windows-with-kerberos-authentication -> ${base}/${version}/tutorial/control-access-to-mongodb-with-kerberos-authentication/ +[*-v2.4]: /${version}/administration/security-checklist -> ${base}/${version}/core/security-introduction/ +[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-ubuntu -> ${base}/${version}/tutorial/install-mongodb-enterprise/ +[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-red-hat-or-centos -> ${base}/${version}/tutorial/install-mongodb-enterprise/ +[*-v2.4]: /${version}/reference/method/db.upgradeCheck -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/db.upgradeCheckAllDBs -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/command/invalidateUserCache -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/reference/aggregation-variables -> ${base}/${version}/reference/operator/aggregation/ +(v2.4-*]: /${version}/core/record-padding -> ${base}/${version}/core/storage/ +[*-v2.4]: /${version}/core/storage -> ${base}/${version}/core/record-padding/ +[*-v2.4]: /${version}/release-notes/2.6-compatibility -> ${base}/${version}/release-notes/ +[*-v2.4]: /${version}/release-notes/2.6-downgrade -> ${base}/${version}/release-notes/ +[*-v2.4]: /${version}/release-notes/2.6-upgrade-authorization -> ${base}/${version}/release-notes/ +[*-v2.4]: /${version}/reference/command/createIndexes -> ${base}/${version}/reference/method/db.collection.ensureIndex/ +[*-v2.4]: /${version}/reference/command/parallelCollectionScan -> ${base}/${version}/reference/command/ +[*-v2.4]: /${version}/reference/command/authSchemaUpgrade -> ${base}/${version}/reference/security/ +[*-v2.4]: /${version}/administration/install-enterprise -> ${base}/${version}/tutorial/install-mongodb-enterprise/ +(v2.4-*]: /${version}/tutorial/install-mongodb-enterprise -> ${base}/${version}/administration/install-enterprise/ +[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-amazon -> ${base}/${version}/tutorial/install-mongodb-enterprise/ +[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-suse -> ${base}/${version}/tutorial/install-mongodb-enterprise/ +[*-v2.4]: /${version}/reference/method/WriteResult -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/WriteResult.hasWriteError -> ${base}/${version}/reference/method/ +[*-v2.4]: /${version}/reference/method/WriteResult.hasWriteConcernError -> ${base}/${version}/reference/method/ +(v2.4-*]: /${version}/tutorial/return-text-queries-using-only-text-index -> ${base}/${version}/core/index-text/ +[*-v2.4]: /${version}/tutorial/perform-maintence-on-replica-set-members -> ${base}/${version}/administration/replica-set-maintenance/ [*-v2.2]: /${version}/administration/security-deployment -> ${base}/${version}/ -[*-v2.2]: /${version}/tutorial/deploy-replica-set-with-auth -> ${base}/${version}/tutorial/deploy-replica-set -[*]: /${version}/reference/audit-operations -> ${base}/${version}/reference/audit-message -(v2.4-*]: /${version}/tutorial/enable-text-search -> ${base}/${version}/core/index-text -[*-v2.4]: /${version}/meta/aggregation-quick-reference -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/core/collection-level-access-control -> ${base}/${version}/core/access-control -(v2.2-*]: /${version}/reference/aggregation/operators -> ${base}/${version}/reference/operator/aggregation -[*-v2.4]: /${version}/tutorial/configure-ssl-clients -> ${base}/${version}/tutorial/configure-ssl -[*-v2.4]: /${version}/reference/built-in-roles -> ${base}/${version}/tutorial/enable-authentication -[*-v2.4]: /${version}/tutorial/verify-mongodb-packages -> ${base}/${version}/installation -[*-v2.4]: /${version}/tutorial/modify-an-index -> ${base}/${version}/administration/indexes-management -[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-debian -> ${base}/${version}/installation -[*-v2.4]: /${version}/tutorial/model-monetary-data -> ${base}/${version}/applications/data-models-applications -[*-v2.4]: /${version}/tutorial/configure-fips -> ${base}/${version}/tutorial/configure-ssl -[*-v2.4]: /${version}/reference/operator/query/minDistance -> ${base}/${version}/reference/operator/query-geospatial -[*-v2.4]: /${version}/reference/method/db.getCmdLineOpts -> ${base}/${version}/reference/method/js-database -[*-v2.4]: /${version}/tutorial/model-time-data -> ${base}/${version}/applications/data-models-applications +[*-v2.2]: /${version}/tutorial/deploy-replica-set-with-auth -> ${base}/${version}/tutorial/deploy-replica-set/ +[*]: /${version}/reference/audit-operations -> ${base}/${version}/reference/audit-message/ +(v2.4-*]: /${version}/tutorial/enable-text-search -> ${base}/${version}/core/index-text/ +[*-v2.4]: /${version}/meta/aggregation-quick-reference -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/core/collection-level-access-control -> ${base}/${version}/core/access-control/ +(v2.2-*]: /${version}/reference/aggregation/operators -> ${base}/${version}/reference/operator/aggregation/ +[*-v2.4]: /${version}/tutorial/configure-ssl-clients -> ${base}/${version}/tutorial/configure-ssl/ +[*-v2.4]: /${version}/reference/built-in-roles -> ${base}/${version}/tutorial/enable-authentication/ +[*-v2.4]: /${version}/tutorial/verify-mongodb-packages -> ${base}/${version}/installation/ +[*-v2.4]: /${version}/tutorial/modify-an-index -> ${base}/${version}/administration/indexes-management/ +[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-debian -> ${base}/${version}/installation/ +[*-v2.4]: /${version}/tutorial/model-monetary-data -> ${base}/${version}/applications/data-models-applications/ +[*-v2.4]: /${version}/tutorial/configure-fips -> ${base}/${version}/tutorial/configure-ssl/ +[*-v2.4]: /${version}/reference/operator/query/minDistance -> ${base}/${version}/reference/operator/query-geospatial/ +[*-v2.4]: /${version}/reference/method/db.getCmdLineOpts -> ${base}/${version}/reference/method/js-database/ +[*-v2.4]: /${version}/tutorial/model-time-data -> ${base}/${version}/applications/data-models-applications/ [*-v2.4]: /${version}/core/multikey-index-bounds -> ${base}/${version}/core/indexes/ -[*-v2.4]: /${version}/core/bulk-write-operations -> ${base}/${version}/core/bulk-inserts +[*-v2.4]: /${version}/core/bulk-write-operations -> ${base}/${version}/core/bulk-inserts/ [*-v2.4]: /${version}/reference/operator/query/comment -> ${base}/${version}/reference/operator/query/ -(v2.4-*]: /${version}/core/bulk-inserts -> ${base}/${version}/core/bulk-write-operations -[*-v2.4]: /${version}/tutorial/clear-jumbo-flag -> ${base}/${version}/core/sharding-chunk-migration -[*-v2.4]: /${version}/tutorial/update-if-current -> ${base}/${version}/tutorial/isolate-sequence-of-operations -[*-v2.2]: /${version}/reference/command/connectionStatus -> ${base}/${version}/reference/command/nav-administration -(v2.4-*]: /${version}/tutorial/isolate-sequence-of-operations -> ${base}/${version}/core/write-operations-atomicity -[*-v2.6]: /${version}/reference/method/sh.getBalancerLockDetails -> ${base}/${version}/reference/method/js-sharding -(v2.4-*]: /${version}/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux -> ${base}/${version}/tutorial/install-mongodb-on-red-hat -[*-v2.4]: /${version}/tutorial/install-mongodb-on-red-hat -> ${base}/${version}/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux -[*-v2.4]: /${version}/reference/geojson -> ${base}/${version}/core/2dsphere -[*-v3.0]: /${version}/reference/operator/query-bitwise -> ${base}/${version}/reference/operator -[*-v3.0]: /${version}/reference/operator/query/bitsAllClear -> ${base}/${version}/reference/operator/query -[*-v3.0]: /${version}/reference/operator/query/bitsAllSet -> ${base}/${version}/reference/operator/query -[*-v3.0]: /${version}/reference/operator/query/bitsAnyClear -> ${base}/${version}/reference/operator/query -[*-v3.0]: /${version}/reference/operator/query/bitsAnySet -> ${base}/${version}/reference/operator/query -[*-v3.0]: /${version}/reference/method/db.collection.bulkWrite -> ${base}/${version}/reference/method/Bulk -[*]: /${version}/use-cases/storing-comments -> https://docs.mongodb.com/ecosystem/use-cases/storing-comments -(v3.0-*]: /${version}/core/aggregation-mechanics -> ${base}/${version}/aggregation -(v3.0-*]: /${version}/core/aggregation-introduction -> ${base}/${version}/aggregation -(v3.0-*]: /${version}/core/aggregation -> ${base}/${version}/aggregation -(v3.0-*]: /${version}/core/single-purpose-aggregation -> ${base}/${version}/aggregation -(v3.0-*]: /${version}/tutorial/getting-started-with-the-mongo-shell -> ${base}/${version}/mongo -[*-v3.0]: /${version}/mongo -> ${base}/${version}/tutorial/getting-started-with-the-mongo-shell -[*-v3.0]: /${version}/tutorial/configure-mongo-shell -> ${base}/${version}/tutorial/getting-started-with-the-mongo-shell -(v3.0-*]: /${version}/faq/mongo -> ${base}/${version}/mongo -[*-v3.0]: /${version}/core/link-text-indexes -> ${base}/${version}/core/index-text -[*-v3.0]: /${version}/core/text-search-operators -> ${base}/${version}/core/index-text -[*-v3.0]: /${version}/text-search -> ${base}/${version}/core/index-text -(v3.0-*]: /${version}/tutorial/enable-internal-authentication -> ${base}/${version}/tutorial/enforce-keyfile-access-control-in-existing-replica-set -(v3.0-*]: /${version}/core/sharding-introduction -> ${base}/${version}/sharding -(v3.0-*]: /${version}/core/sharding -> ${base}/${version}/sharding -(v3.0-*]: /${version}/core/sharded-cluster-architectures -> ${base}/${version}/core/sharded-cluster-components -(v3.0-*]: /${version}/core/sharded-cluster-architectures-production -> ${base}/${version}/core/sharded-cluster-components -(v3.0-*]: /${version}/core/sharded-cluster-architectures-test -> ${base}/${version}/core/sharded-cluster-components -(v3.0-*]: /${version}/core/sharded-cluster-operations -> ${base}/${version}/sharding -(v3.0-*]: /${version}/core/sharded-cluster-mechanics -> ${base}/${version}/sharding -(v3.0-*]: /${version}/core/sharding-chunk-migration -> ${base}/${version}/core/sharding-balancer-administration -(v3.0-*]: /${version}/core/sharding-chunk-splitting -> ${base}/${version}/core/sharding-data-partitioning -(v3.0-*]: /${version}/core/sharding-shard-key-indexes -> ${base}/${version}/core/sharding-shard-key -(v3.0-*]: /${version}/core/sharded-cluster-metadata -> ${base}/${version}/core/sharded-cluster-config-servers -(v3.0-*]: /${version}/administration/sharded-clusters -> ${base}/${version}/sharding -(v3.0-*]: /${version}/administration/sharded-cluster-deployment -> ${base}/${version}/tutorial/deploy-shard-cluster -(v3.0-*]: /${version}/tutorial/choose-a-shard-key -> ${base}/${version}/core/sharding-shard-key -(v3.0-*]: /${version}/tutorial/shard-collection-with-a-hashed-shard-key -> ${base}/${version}/core/hashed-sharding -(v3.0-*]: /${version}/administration/sharded-cluster-maintenance -> ${base}/${version}/administration/sharded-cluster-administration -(v3.0-*]: /${version}/administration/sharded-cluster-data -> ${base}/${version}/administration/sharded-cluster-administration -[*-v3.0]: /${version}/core/hashed-sharding -> ${base}/${version}/tutorial/shard-collection-with-a-hashed-shard-key -[*-v3.0]: /${version}/core/ranged-sharding -> ${base}/${version}/core/sharding-introduction -[*-v3.0]: /${version}/tutorial/deploy-sharded-cluster-ranged-sharding -> ${base}/${version}/tutorial/deploy-shard-cluster -[*-v3.0]: /${version}/core/sharded-cluster-administration -> ${base}/${version}/core/sharded-cluster-mechanics -(v3.0-*]: /${version}/core/sharded-cluster-metadata -> ${base}/${version}/core/sharded-cluster-config-servers -[*-v3.0]: /${version}/core/sharding-balancer-administration -> ${base}/${version}/core/sharding-chunk-migration -(v3.0-*]: /${version}/tutorial/configure-sharded-cluster-balancer -> ${base}/${version}/tutorial/manage-sharded-cluster-balancer -[*-v3.0]: /${version}/tutorial/deploy-sharded-cluster-hashed-sharding -> ${base}/${version}/tutorial/shard-collection-with-a-hashed-shard-key -(v3.0-*]: /${version}/tutorial/shard-gridfs-data -> ${base}/${version}/core/gridfs -[*-v3.0]: /${version}/tutorial/sharding-data-partitioning -> ${base}/${version}/core/sharding-chunk-splitting -[*-v3.0]: /${version}/core/sharding-balancer-administration -> ${base}/${version}/core/sharding-balancing -(v3.0-*]: /${version}/core/sharding-balancing -> ${base}/${version}/core/sharding-balancer-administration -(v3.0-*]: /${version}/core/sharded-cluster-high-availability -> ${base}/${version}/tutorial/troubleshoot-sharded-clusters -[*-v3.2]: /${version}/tutorial/query-embedded-documents -> ${base}/${version}/tutorial/query-documents -[*-v3.2]: /${version}/tutorial/query-arrays -> ${base}/${version}/tutorial/query-documents -[*-v3.2]: /${version}/tutorial/query-array-of-documents -> ${base}/${version}/tutorial/query-documents -(v3.0-*]: /${version}/applications/geospatial-indexes -> ${base}/${version}/geospatial-queries -[*-v3.0]: /${version}/geospatial-queries -> ${base}/${version}/applications/geospatial-indexes -[*]: /${version}/reference/projection/elemMatch -> ${base}/${version}/reference/operator/projection/elemMatch -[*]: /${version}/reference/projection/positional -> ${base}/${version}/reference/operator/projection/positional -[*]: /${version}/reference/projection/slice -> ${base}/${version}/reference/operator/projection/slice -[*]: /${version}/reference/operator/or -> ${base}/${version}/reference/operator/query/or -[*]: /${version}/reference/operator/and -> ${base}/${version}/reference/operator/query/and -[*]: /${version}/reference/operator/not -> ${base}/${version}/reference/operator/query/not -[*]: /${version}/reference/operator/nor -> ${base}/${version}/reference/operator/query/nor -[*]: /${version}/reference/operator/geoWithin -> ${base}/${version}/reference/operator/query/geoWithin -[*]: /${version}/reference/operator/geoIntersects -> ${base}/${version}/reference/operator/query/geoIntersects -[*]: /${version}/reference/aggregation/divide -> ${base}/${version}/reference/operator/aggregation/divide -[*]: /${version}/reference/aggregation/mod -> ${base}/${version}/reference/operator/aggregation/mod -[*]: /${version}/reference/aggregation/multiply -> ${base}/${version}/reference/operator/aggregation/multiply -[*]: /${version}/reference/aggregation/subtract -> ${base}/${version}/reference/operator/aggregation/subtract -[*]: /${version}/reference/aggregation/and -> ${base}/${version}/reference/operator/aggregation/and -[*]: /${version}/reference/aggregation/or -> ${base}/${version}/reference/operator/aggregation/or -[*]: /${version}/reference/aggregation/not -> ${base}/${version}/reference/operator/aggregation/not -[*]: /${version}/reference/aggregation/cmp -> ${base}/${version}/reference/operator/aggregation/cmp -[*]: /${version}/reference/aggregation/eq -> ${base}/${version}/reference/operator/aggregation/eq -[*]: /${version}/reference/aggregation/gt -> ${base}/${version}/reference/operator/aggregation/gt -[*]: /${version}/reference/aggregation/gte -> ${base}/${version}/reference/operator/aggregation/gte -[*]: /${version}/reference/aggregation/lt -> ${base}/${version}/reference/operator/aggregation/lt -[*]: /${version}/reference/aggregation/lte -> ${base}/${version}/reference/operator/aggregation/lte -[*]: /${version}/reference/aggregation/ne -> ${base}/${version}/reference/operator/aggregation/ne -[*]: /${version}/reference/aggregation/cond -> ${base}/${version}/reference/operator/aggregation/cond -[*]: /${version}/reference/aggregation/ifNull -> ${base}/${version}/reference/operator/aggregation/ifNull -[*]: /${version}/reference/aggregation/dayOfYear -> ${base}/${version}/reference/operator/aggregation/dayOfYear -[*]: /${version}/reference/aggregation/dayOfMonth -> ${base}/${version}/reference/operator/aggregation/dayOfMonth -[*]: /${version}/reference/aggregation/dayOfWeek -> ${base}/${version}/reference/operator/aggregation/dayOfWeek -[*]: /${version}/reference/aggregation/year -> ${base}/${version}/reference/operator/aggregation/year -[*]: /${version}/reference/aggregation/month -> ${base}/${version}/reference/operator/aggregation/month -[*]: /${version}/reference/aggregation/week -> ${base}/${version}/reference/operator/aggregation/week -[*]: /${version}/reference/aggregation/hour -> ${base}/${version}/reference/operator/aggregation/hour -[*]: /${version}/reference/aggregation/minute -> ${base}/${version}/reference/operator/aggregation/minute -[*]: /${version}/reference/aggregation/second -> ${base}/${version}/reference/operator/aggregation/second -[*]: /${version}/reference/aggregation/millisecond -> ${base}/${version}/reference/operator/aggregation/millisecond -[*]: /${version}/reference/aggregation/addToSet -> ${base}/${version}/reference/operator/aggregation/addToSet -[*]: /${version}/reference/aggregation/first -> ${base}/${version}/reference/operator/aggregation/first -[*]: /${version}/reference/aggregation/last -> ${base}/${version}/reference/operator/aggregation/last -[*]: /${version}/reference/aggregation/max -> ${base}/${version}/reference/operator/aggregation/max -[*]: /${version}/reference/aggregation/min -> ${base}/${version}/reference/operator/aggregation/min -[*]: /${version}/reference/aggregation/avg -> ${base}/${version}/reference/operator/aggregation/avg -[*]: /${version}/reference/aggregation/push -> ${base}/${version}/reference/operator/aggregation/push -[*]: /${version}/reference/aggregation/sum -> ${base}/${version}/reference/operator/aggregation/sum -[*]: /${version}/reference/aggregation/project -> ${base}/${version}/reference/operator/aggregation/project -[*]: /${version}/reference/aggregation/match -> ${base}/${version}/reference/operator/aggregation/match -[*]: /${version}/reference/aggregation/limit -> ${base}/${version}/reference/operator/aggregation/limit -[*]: /${version}/reference/aggregation/skip -> ${base}/${version}/reference/operator/aggregation/skip -[*]: /${version}/reference/aggregation/unwind -> ${base}/${version}/reference/operator/aggregation/unwind -[*]: /${version}/reference/aggregation/group -> ${base}/${version}/reference/operator/aggregation/group -[*]: /${version}/reference/aggregation/sort -> ${base}/${version}/reference/operator/aggregation/sort -[*]: /${version}/reference/aggregation/geoNear -> ${base}/${version}/reference/operator/aggregation/geoNear -[*]: /${version}/reference/aggregation/concat -> ${base}/${version}/reference/operator/aggregation/concat -[*]: /${version}/reference/aggregation/strcasecmp -> ${base}/${version}/reference/operator/aggregation/strcasecmp -[*]: /${version}/reference/aggregation/substr -> ${base}/${version}/reference/operator/aggregation/substr -[*]: /${version}/reference/aggregation/toLower -> ${base}/${version}/reference/operator/aggregation/toLower -[*]: /${version}/reference/aggregation/toUpper -> ${base}/${version}/reference/operator/aggregation/toUpper -[*]: /${version}/reference/operator/near -> ${base}/${version}/reference/operator/query/near -[*]: /${version}/reference/operator/nearSphere -> ${base}/${version}/reference/operator/query/nearSphere -[*]: /${version}/reference/operator/isolated -> ${base}/${version}/reference/operator/update/isolated -[*]: /${version}/reference/operator/bit -> ${base}/${version}/reference/operator/update/bit -[*]: /${version}/reference/operator/inc -> ${base}/${version}/reference/operator/update/inc -[*]: /${version}/reference/operator/rename -> ${base}/${version}/reference/operator/update/rename -[*]: /${version}/reference/operator/setOnInsert -> ${base}/${version}/reference/operator/update/setOnInsert -[*]: /${version}/reference/operator/set -> ${base}/${version}/reference/operator/update/set -[*]: /${version}/reference/operator/unset -> ${base}/${version}/reference/operator/update/unset -[*]: /${version}/reference/operator/comment -> ${base}/${version}/reference/operator/meta/comment -[*]: /${version}/reference/operator/explain -> ${base}/${version}/reference/operator/meta/explain -[*]: /${version}/reference/operator/hint -> ${base}/${version}/reference/operator/meta/hint -[*]: /${version}/reference/operator/maxScan -> ${base}/${version}/reference/operator/meta/maxScan -[*]: /${version}/reference/operator/max -> ${base}/${version}/reference/operator/meta/max -[*]: /${version}/reference/operator/min -> ${base}/${version}/reference/operator/meta/min -[*]: /${version}/reference/operator/orderby -> ${base}/${version}/reference/operator/meta/orderby -[*]: /${version}/reference/operator/returnKey -> ${base}/${version}/reference/operator/meta/returnKey -[*]: /${version}/reference/operator/showDiskLoc -> ${base}/${version}/reference/operator/meta/showDiskLoc -[*]: /${version}/reference/operator/snapshot -> ${base}/${version}/reference/operator/meta/snapshot -[*]: /${version}/reference/operator/all -> ${base}/${version}/reference/operator/query/all -[*]: /${version}/reference/operator/elemMatch -> ${base}/${version}/reference/operator/query/elemMatch -[*]: /${version}/reference/operator/size -> ${base}/${version}/reference/operator/query/size -[*]: /${version}/reference/operator/geometry -> ${base}/${version}/reference/operator/query/geometry -[*]: /${version}/reference/operator/maxDistance -> ${base}/${version}/reference/operator/query/maxDistance -[*]: /${version}/reference/operator/center -> ${base}/${version}/reference/operator/query/center -[*]: /${version}/reference/operator/centerSphere -> ${base}/${version}/reference/operator/query/centerSphere -[*]: /${version}/reference/operator/box -> ${base}/${version}/reference/operator/query/box -[*]: /${version}/reference/operator/polygon -> ${base}/${version}/reference/operator/query/polygon -[*]: /${version}/reference/operator/uniqueDocs -> ${base}/${version}/reference/operator/query/uniqueDocs -[*]: /${version}/reference/operator/exists -> ${base}/${version}/reference/operator/query/exists -[*]: /${version}/reference/operator/type -> ${base}/${version}/reference/operator/query/type -[*]: /${version}/reference/operator/positional -> ${base}/${version}/reference/operator/update/positional -[*]: /${version}/reference/operator/addToSet -> ${base}/${version}/reference/operator/update/addToSet -[*]: /${version}/reference/operator/pop -> ${base}/${version}/reference/operator/update/pop -[*]: /${version}/reference/operator/pullAll -> ${base}/${version}/reference/operator/update/pullAll -[*]: /${version}/reference/operator/pull -> ${base}/${version}/reference/operator/update/pull -[*]: /${version}/reference/operator/pushAll -> ${base}/${version}/reference/operator/update/pushAll -[*]: /${version}/reference/operator/push -> ${base}/${version}/reference/operator/update/push -[*]: /${version}/reference/operator/natural -> ${base}/${version}/reference/operator/meta/natural -[*]: /${version}/reference/operator/mod -> ${base}/${version}/reference/operator/query/mod -[*]: /${version}/reference/operator/regex -> ${base}/${version}/reference/operator/query/regex -[*]: /${version}/reference/operator/where -> ${base}/${version}/reference/operator/query/where -[*]: /${version}/reference/operator/gt -> ${base}/${version}/reference/operator/query/gt -[*]: /${version}/reference/operator/gte -> ${base}/${version}/reference/operator/query/gte -[*]: /${version}/reference/operator/in -> ${base}/${version}/reference/operator/query/in -[*]: /${version}/reference/operator/lt -> ${base}/${version}/reference/operator/query/lt -[*]: /${version}/reference/operator/lte -> ${base}/${version}/reference/operator/query/lte -[*]: /${version}/reference/operator/ne -> ${base}/${version}/reference/operator/query/ne -[*]: /${version}/reference/operator/nin -> ${base}/${version}/reference/operator/query/nin -[*]: /${version}/reference/operator/each -> ${base}/${version}/reference/operator/update/each -[*]: /${version}/reference/operator/slice -> ${base}/${version}/reference/operator/update/slice -[*]: /${version}/reference/operator/sort -> ${base}/${version}/reference/operator/update/sort -[v2.2]: /${version}/reference/operator/update/sort -> ${base}/${version}/reference/operators -[*]: /${version}/reference/operator/update/atomic -> ${base}/${version}/reference/operator/update/isolated -[*]: /${version}/reference/operator/atomic -> ${base}/${version}/reference/operator/update/isolated -[v2.2]: /${version}/reference/operator/query/geoWithin -> ${base}/${version}/reference/operator/query/within -[v2.2]: /${version}/reference/operator/update/slice -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/operator/update/setOnInsert -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/operator/query/geometry -> ${base}/${version}/reference/operators -[v2.2]: /${version}/reference/operator/query/geoIntersects -> ${base}/${version}/reference/operators -(v2.2-*]: /${version}/reference/operator/query/within -> ${base}/${version}/reference/operator/query/geoWithin -[*]: /${version}/reference/aggregation/add -> ${base}/${version}/reference/operator/aggregation/add -(v2.2-*]: /${version}/reference/operator/aggregation/operators -> ${base}/${version}/reference/operator/aggregation -(v2.2-*]: /${version}/reference/operator/aggregation/operator-arithmetic -> ${base}/${version}/reference/operator/aggregation-arithmetic -(v2.2-*]: /${version}/reference/operator/aggregation/operator-boolean -> ${base}/${version}/reference/operator/aggregation-boolean -(v2.2-*]: /${version}/reference/operator/aggregation/operator-comparison -> ${base}/${version}/reference/operator/aggregation-comparison -(v2.2-*]: /${version}/reference/operator/aggregation/operator-conditional -> ${base}/${version}/reference/operator/aggregation-conditional -(v2.2-*]: /${version}/reference/operator/aggregation/operator-date -> ${base}/${version}/reference/operator/aggregation-date -(v2.2-*]: /${version}/reference/operator/aggregation/operator-group -> ${base}/${version}/reference/operator/aggregation-group -[*]: /${version}/reference/operator/aggregation-nav -> ${base}/${version}/reference/operator/aggregation -(v2.2-*]: /${version}/reference/operator/aggregation/operator-nav -> ${base}/${version}/reference/operator/aggregation -(v2.2-*]: /${version}/reference/operator/aggregation/operator-pipeline -> ${base}/${version}/reference/operator/aggregation-pipeline -(v2.2-*]: /${version}/reference/operator/aggregation/operator-string -> ${base}/${version}/reference/operator/aggregation-string -(v2.2-*]: /${version}/reference/operator/nav-query -> ${base}/${version}/reference/operator/query -(v2.2-*]: /${version}/reference/operator/nav-update -> ${base}/${version}/reference/operator/update -[v2.2]: /${version}/reference/operator/aggregation-arithmetic -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/operator/aggregation-boolean -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/operator/aggregation-comparison -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/operator/aggregation-conditional -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/operator/aggregation-date -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/operator/aggregation-group -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/operator/aggregation-nav -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/operator/aggregation-pipeline -> ${base}/${version}/reference/operator -[v2.2]: /${version}/reference/operator/aggregation-string -> ${base}/${version}/reference/operator -(v2.6-*]: /${version}/contributors/drivers -> ${base}/${version}/ecosystem/drivers +(v2.4-*]: /${version}/core/bulk-inserts -> ${base}/${version}/core/bulk-write-operations/ +[*-v2.4]: /${version}/tutorial/clear-jumbo-flag -> ${base}/${version}/core/sharding-chunk-migration/ +[*-v2.4]: /${version}/tutorial/update-if-current -> ${base}/${version}/tutorial/isolate-sequence-of-operations/ +[*-v2.2]: /${version}/reference/command/connectionStatus -> ${base}/${version}/reference/command/nav-administration/ +(v2.4-*]: /${version}/tutorial/isolate-sequence-of-operations -> ${base}/${version}/core/write-operations-atomicity/ +[*-v2.6]: /${version}/reference/method/sh.getBalancerLockDetails -> ${base}/${version}/reference/method/js-sharding/ +(v2.4-*]: /${version}/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux -> ${base}/${version}/tutorial/install-mongodb-on-red-hat/ +[*-v2.4]: /${version}/tutorial/install-mongodb-on-red-hat -> ${base}/${version}/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/ +[*-v2.4]: /${version}/reference/geojson -> ${base}/${version}/core/2dsphere/ +[*-v3.0]: /${version}/reference/operator/query-bitwise -> ${base}/${version}/reference/operator/ +[*-v3.0]: /${version}/reference/operator/query/bitsAllClear -> ${base}/${version}/reference/operator/query/ +[*-v3.0]: /${version}/reference/operator/query/bitsAllSet -> ${base}/${version}/reference/operator/query/ +[*-v3.0]: /${version}/reference/operator/query/bitsAnyClear -> ${base}/${version}/reference/operator/query/ +[*-v3.0]: /${version}/reference/operator/query/bitsAnySet -> ${base}/${version}/reference/operator/query/ +[*-v3.0]: /${version}/reference/method/db.collection.bulkWrite -> ${base}/${version}/reference/method/Bulk/ +[*]: /${version}/use-cases/storing-comments -> https://docs.mongodb.com/ecosystem/use-cases/storing-comments/ +(v3.0-*]: /${version}/core/aggregation-mechanics -> ${base}/${version}/aggregation/ +(v3.0-*]: /${version}/core/aggregation-introduction -> ${base}/${version}/aggregation/ +(v3.0-*]: /${version}/core/aggregation -> ${base}/${version}/aggregation/ +(v3.0-*]: /${version}/core/single-purpose-aggregation -> ${base}/${version}/aggregation/ +(v3.0-*]: /${version}/tutorial/getting-started-with-the-mongo-shell -> ${base}/${version}/mongo/ +[*-v3.0]: /${version}/mongo -> ${base}/${version}/tutorial/getting-started-with-the-mongo-shell/ +[*-v3.0]: /${version}/tutorial/configure-mongo-shell -> ${base}/${version}/tutorial/getting-started-with-the-mongo-shell/ +(v3.0-*]: /${version}/faq/mongo -> ${base}/${version}/mongo/ +[*-v3.0]: /${version}/core/link-text-indexes -> ${base}/${version}/core/index-text/ +[*-v3.0]: /${version}/core/text-search-operators -> ${base}/${version}/core/index-text/ +[*-v3.0]: /${version}/text-search -> ${base}/${version}/core/index-text/ +(v3.0-*]: /${version}/tutorial/enable-internal-authentication -> ${base}/${version}/tutorial/enforce-keyfile-access-control-in-existing-replica-set/ +(v3.0-*]: /${version}/core/sharding-introduction -> ${base}/${version}/sharding/ +(v3.0-*]: /${version}/core/sharding -> ${base}/${version}/sharding/ +(v3.0-*]: /${version}/core/sharded-cluster-architectures -> ${base}/${version}/core/sharded-cluster-components/ +(v3.0-*]: /${version}/core/sharded-cluster-architectures-production -> ${base}/${version}/core/sharded-cluster-components/ +(v3.0-*]: /${version}/core/sharded-cluster-architectures-test -> ${base}/${version}/core/sharded-cluster-components/ +(v3.0-*]: /${version}/core/sharded-cluster-operations -> ${base}/${version}/sharding/ +(v3.0-*]: /${version}/core/sharded-cluster-mechanics -> ${base}/${version}/sharding/ +(v3.0-*]: /${version}/core/sharding-chunk-migration -> ${base}/${version}/core/sharding-balancer-administration/ +(v3.0-*]: /${version}/core/sharding-chunk-splitting -> ${base}/${version}/core/sharding-data-partitioning/ +(v3.0-*]: /${version}/core/sharding-shard-key-indexes -> ${base}/${version}/core/sharding-shard-key/ +(v3.0-*]: /${version}/core/sharded-cluster-metadata -> ${base}/${version}/core/sharded-cluster-config-servers/ +(v3.0-*]: /${version}/administration/sharded-clusters -> ${base}/${version}/sharding/ +(v3.0-*]: /${version}/administration/sharded-cluster-deployment -> ${base}/${version}/tutorial/deploy-shard-cluster/ +(v3.0-*]: /${version}/tutorial/choose-a-shard-key -> ${base}/${version}/core/sharding-shard-key/ +(v3.0-*]: /${version}/tutorial/shard-collection-with-a-hashed-shard-key -> ${base}/${version}/core/hashed-sharding/ +(v3.0-*]: /${version}/administration/sharded-cluster-maintenance -> ${base}/${version}/administration/sharded-cluster-administration/ +(v3.0-*]: /${version}/administration/sharded-cluster-data -> ${base}/${version}/administration/sharded-cluster-administration/ +[*-v3.0]: /${version}/core/hashed-sharding -> ${base}/${version}/tutorial/shard-collection-with-a-hashed-shard-key/ +[*-v3.0]: /${version}/core/ranged-sharding -> ${base}/${version}/core/sharding-introduction/ +[*-v3.0]: /${version}/tutorial/deploy-sharded-cluster-ranged-sharding -> ${base}/${version}/tutorial/deploy-shard-cluster/ +[*-v3.0]: /${version}/core/sharded-cluster-administration -> ${base}/${version}/core/sharded-cluster-mechanics/ +(v3.0-*]: /${version}/core/sharded-cluster-metadata -> ${base}/${version}/core/sharded-cluster-config-servers/ +[*-v3.0]: /${version}/core/sharding-balancer-administration -> ${base}/${version}/core/sharding-chunk-migration/ +(v3.0-*]: /${version}/tutorial/configure-sharded-cluster-balancer -> ${base}/${version}/tutorial/manage-sharded-cluster-balancer/ +[*-v3.0]: /${version}/tutorial/deploy-sharded-cluster-hashed-sharding -> ${base}/${version}/tutorial/shard-collection-with-a-hashed-shard-key/ +(v3.0-*]: /${version}/tutorial/shard-gridfs-data -> ${base}/${version}/core/gridfs/ +[*-v3.0]: /${version}/tutorial/sharding-data-partitioning -> ${base}/${version}/core/sharding-chunk-splitting/ +[*-v3.0]: /${version}/core/sharding-balancer-administration -> ${base}/${version}/core/sharding-balancing/ +(v3.0-*]: /${version}/core/sharding-balancing -> ${base}/${version}/core/sharding-balancer-administration/ +(v3.0-*]: /${version}/core/sharded-cluster-high-availability -> ${base}/${version}/tutorial/troubleshoot-sharded-clusters/ +[*-v3.2]: /${version}/tutorial/query-embedded-documents -> ${base}/${version}/tutorial/query-documents/ +[*-v3.2]: /${version}/tutorial/query-arrays -> ${base}/${version}/tutorial/query-documents/ +[*-v3.2]: /${version}/tutorial/query-array-of-documents -> ${base}/${version}/tutorial/query-documents/ +(v3.0-*]: /${version}/applications/geospatial-indexes -> ${base}/${version}/geospatial-queries/ +[*-v3.0]: /${version}/geospatial-queries -> ${base}/${version}/applications/geospatial-indexes/ +[*]: /${version}/reference/projection/elemMatch -> ${base}/${version}/reference/operator/projection/elemMatch/ +[*]: /${version}/reference/projection/positional -> ${base}/${version}/reference/operator/projection/positional/ +[*]: /${version}/reference/projection/slice -> ${base}/${version}/reference/operator/projection/slice/ +[*]: /${version}/reference/operator/or -> ${base}/${version}/reference/operator/query/or/ +[*]: /${version}/reference/operator/and -> ${base}/${version}/reference/operator/query/and/ +[*]: /${version}/reference/operator/not -> ${base}/${version}/reference/operator/query/not/ +[*]: /${version}/reference/operator/nor -> ${base}/${version}/reference/operator/query/nor/ +[*]: /${version}/reference/operator/geoWithin -> ${base}/${version}/reference/operator/query/geoWithin/ +[*]: /${version}/reference/operator/geoIntersects -> ${base}/${version}/reference/operator/query/geoIntersects/ +[*]: /${version}/reference/aggregation/divide -> ${base}/${version}/reference/operator/aggregation/divide/ +[*]: /${version}/reference/aggregation/mod -> ${base}/${version}/reference/operator/aggregation/mod/ +[*]: /${version}/reference/aggregation/multiply -> ${base}/${version}/reference/operator/aggregation/multiply/ +[*]: /${version}/reference/aggregation/subtract -> ${base}/${version}/reference/operator/aggregation/subtract/ +[*]: /${version}/reference/aggregation/and -> ${base}/${version}/reference/operator/aggregation/and/ +[*]: /${version}/reference/aggregation/or -> ${base}/${version}/reference/operator/aggregation/or/ +[*]: /${version}/reference/aggregation/not -> ${base}/${version}/reference/operator/aggregation/not/ +[*]: /${version}/reference/aggregation/cmp -> ${base}/${version}/reference/operator/aggregation/cmp/ +[*]: /${version}/reference/aggregation/eq -> ${base}/${version}/reference/operator/aggregation/eq/ +[*]: /${version}/reference/aggregation/gt -> ${base}/${version}/reference/operator/aggregation/gt/ +[*]: /${version}/reference/aggregation/gte -> ${base}/${version}/reference/operator/aggregation/gte/ +[*]: /${version}/reference/aggregation/lt -> ${base}/${version}/reference/operator/aggregation/lt/ +[*]: /${version}/reference/aggregation/lte -> ${base}/${version}/reference/operator/aggregation/lte/ +[*]: /${version}/reference/aggregation/ne -> ${base}/${version}/reference/operator/aggregation/ne/ +[*]: /${version}/reference/aggregation/cond -> ${base}/${version}/reference/operator/aggregation/cond/ +[*]: /${version}/reference/aggregation/ifNull -> ${base}/${version}/reference/operator/aggregation/ifNull/ +[*]: /${version}/reference/aggregation/dayOfYear -> ${base}/${version}/reference/operator/aggregation/dayOfYear/ +[*]: /${version}/reference/aggregation/dayOfMonth -> ${base}/${version}/reference/operator/aggregation/dayOfMonth/ +[*]: /${version}/reference/aggregation/dayOfWeek -> ${base}/${version}/reference/operator/aggregation/dayOfWeek/ +[*]: /${version}/reference/aggregation/year -> ${base}/${version}/reference/operator/aggregation/year/ +[*]: /${version}/reference/aggregation/month -> ${base}/${version}/reference/operator/aggregation/month/ +[*]: /${version}/reference/aggregation/week -> ${base}/${version}/reference/operator/aggregation/week/ +[*]: /${version}/reference/aggregation/hour -> ${base}/${version}/reference/operator/aggregation/hour/ +[*]: /${version}/reference/aggregation/minute -> ${base}/${version}/reference/operator/aggregation/minute/ +[*]: /${version}/reference/aggregation/second -> ${base}/${version}/reference/operator/aggregation/second/ +[*]: /${version}/reference/aggregation/millisecond -> ${base}/${version}/reference/operator/aggregation/millisecond/ +[*]: /${version}/reference/aggregation/addToSet -> ${base}/${version}/reference/operator/aggregation/addToSet/ +[*]: /${version}/reference/aggregation/first -> ${base}/${version}/reference/operator/aggregation/first/ +[*]: /${version}/reference/aggregation/last -> ${base}/${version}/reference/operator/aggregation/last/ +[*]: /${version}/reference/aggregation/max -> ${base}/${version}/reference/operator/aggregation/max/ +[*]: /${version}/reference/aggregation/min -> ${base}/${version}/reference/operator/aggregation/min/ +[*]: /${version}/reference/aggregation/avg -> ${base}/${version}/reference/operator/aggregation/avg/ +[*]: /${version}/reference/aggregation/push -> ${base}/${version}/reference/operator/aggregation/push/ +[*]: /${version}/reference/aggregation/sum -> ${base}/${version}/reference/operator/aggregation/sum/ +[*]: /${version}/reference/aggregation/project -> ${base}/${version}/reference/operator/aggregation/project/ +[*]: /${version}/reference/aggregation/match -> ${base}/${version}/reference/operator/aggregation/match/ +[*]: /${version}/reference/aggregation/limit -> ${base}/${version}/reference/operator/aggregation/limit/ +[*]: /${version}/reference/aggregation/skip -> ${base}/${version}/reference/operator/aggregation/skip/ +[*]: /${version}/reference/aggregation/unwind -> ${base}/${version}/reference/operator/aggregation/unwind/ +[*]: /${version}/reference/aggregation/group -> ${base}/${version}/reference/operator/aggregation/group/ +[*]: /${version}/reference/aggregation/sort -> ${base}/${version}/reference/operator/aggregation/sort/ +[*]: /${version}/reference/aggregation/geoNear -> ${base}/${version}/reference/operator/aggregation/geoNear/ +[*]: /${version}/reference/aggregation/concat -> ${base}/${version}/reference/operator/aggregation/concat/ +[*]: /${version}/reference/aggregation/strcasecmp -> ${base}/${version}/reference/operator/aggregation/strcasecmp/ +[*]: /${version}/reference/aggregation/substr -> ${base}/${version}/reference/operator/aggregation/substr/ +[*]: /${version}/reference/aggregation/toLower -> ${base}/${version}/reference/operator/aggregation/toLower/ +[*]: /${version}/reference/aggregation/toUpper -> ${base}/${version}/reference/operator/aggregation/toUpper/ +[*]: /${version}/reference/operator/near -> ${base}/${version}/reference/operator/query/near/ +[*]: /${version}/reference/operator/nearSphere -> ${base}/${version}/reference/operator/query/nearSphere/ +[*]: /${version}/reference/operator/isolated -> ${base}/${version}/reference/operator/update/isolated/ +[*]: /${version}/reference/operator/bit -> ${base}/${version}/reference/operator/update/bit/ +[*]: /${version}/reference/operator/inc -> ${base}/${version}/reference/operator/update/inc/ +[*]: /${version}/reference/operator/rename -> ${base}/${version}/reference/operator/update/rename/ +[*]: /${version}/reference/operator/setOnInsert -> ${base}/${version}/reference/operator/update/setOnInsert/ +[*]: /${version}/reference/operator/set -> ${base}/${version}/reference/operator/update/set/ +[*]: /${version}/reference/operator/unset -> ${base}/${version}/reference/operator/update/unset/ +[*]: /${version}/reference/operator/comment -> ${base}/${version}/reference/operator/meta/comment/ +[*]: /${version}/reference/operator/explain -> ${base}/${version}/reference/operator/meta/explain/ +[*]: /${version}/reference/operator/hint -> ${base}/${version}/reference/operator/meta/hint/ +[*]: /${version}/reference/operator/maxScan -> ${base}/${version}/reference/operator/meta/maxScan/ +[*]: /${version}/reference/operator/max -> ${base}/${version}/reference/operator/meta/max/ +[*]: /${version}/reference/operator/min -> ${base}/${version}/reference/operator/meta/min/ +[*]: /${version}/reference/operator/orderby -> ${base}/${version}/reference/operator/meta/orderby/ +[*]: /${version}/reference/operator/returnKey -> ${base}/${version}/reference/operator/meta/returnKey/ +[*]: /${version}/reference/operator/showDiskLoc -> ${base}/${version}/reference/operator/meta/showDiskLoc/ +[*]: /${version}/reference/operator/snapshot -> ${base}/${version}/reference/operator/meta/snapshot/ +[*]: /${version}/reference/operator/all -> ${base}/${version}/reference/operator/query/all/ +[*]: /${version}/reference/operator/elemMatch -> ${base}/${version}/reference/operator/query/elemMatch/ +[*]: /${version}/reference/operator/size -> ${base}/${version}/reference/operator/query/size/ +[*]: /${version}/reference/operator/geometry -> ${base}/${version}/reference/operator/query/geometry/ +[*]: /${version}/reference/operator/maxDistance -> ${base}/${version}/reference/operator/query/maxDistance/ +[*]: /${version}/reference/operator/center -> ${base}/${version}/reference/operator/query/center/ +[*]: /${version}/reference/operator/centerSphere -> ${base}/${version}/reference/operator/query/centerSphere/ +[*]: /${version}/reference/operator/box -> ${base}/${version}/reference/operator/query/box/ +[*]: /${version}/reference/operator/polygon -> ${base}/${version}/reference/operator/query/polygon/ +[*]: /${version}/reference/operator/uniqueDocs -> ${base}/${version}/reference/operator/query/uniqueDocs/ +[*]: /${version}/reference/operator/exists -> ${base}/${version}/reference/operator/query/exists/ +[*]: /${version}/reference/operator/type -> ${base}/${version}/reference/operator/query/type/ +[*]: /${version}/reference/operator/positional -> ${base}/${version}/reference/operator/update/positional/ +[*]: /${version}/reference/operator/addToSet -> ${base}/${version}/reference/operator/update/addToSet/ +[*]: /${version}/reference/operator/pop -> ${base}/${version}/reference/operator/update/pop/ +[*]: /${version}/reference/operator/pullAll -> ${base}/${version}/reference/operator/update/pullAll/ +[*]: /${version}/reference/operator/pull -> ${base}/${version}/reference/operator/update/pull/ +[*]: /${version}/reference/operator/pushAll -> ${base}/${version}/reference/operator/update/pushAll/ +[*]: /${version}/reference/operator/push -> ${base}/${version}/reference/operator/update/push/ +[*]: /${version}/reference/operator/natural -> ${base}/${version}/reference/operator/meta/natural/ +[*]: /${version}/reference/operator/mod -> ${base}/${version}/reference/operator/query/mod/ +[*]: /${version}/reference/operator/regex -> ${base}/${version}/reference/operator/query/regex/ +[*]: /${version}/reference/operator/where -> ${base}/${version}/reference/operator/query/where/ +[*]: /${version}/reference/operator/gt -> ${base}/${version}/reference/operator/query/gt/ +[*]: /${version}/reference/operator/gte -> ${base}/${version}/reference/operator/query/gte/ +[*]: /${version}/reference/operator/in -> ${base}/${version}/reference/operator/query/in/ +[*]: /${version}/reference/operator/lt -> ${base}/${version}/reference/operator/query/lt/ +[*]: /${version}/reference/operator/lte -> ${base}/${version}/reference/operator/query/lte/ +[*]: /${version}/reference/operator/ne -> ${base}/${version}/reference/operator/query/ne/ +[*]: /${version}/reference/operator/nin -> ${base}/${version}/reference/operator/query/nin/ +[*]: /${version}/reference/operator/each -> ${base}/${version}/reference/operator/update/each/ +[*]: /${version}/reference/operator/slice -> ${base}/${version}/reference/operator/update/slice/ +[*]: /${version}/reference/operator/sort -> ${base}/${version}/reference/operator/update/sort/ +[v2.2]: /${version}/reference/operator/update/sort -> ${base}/${version}/reference/operators/ +[*]: /${version}/reference/operator/update/atomic -> ${base}/${version}/reference/operator/update/isolated/ +[*]: /${version}/reference/operator/atomic -> ${base}/${version}/reference/operator/update/isolated/ +[v2.2]: /${version}/reference/operator/query/geoWithin -> ${base}/${version}/reference/operator/query/within/ +[v2.2]: /${version}/reference/operator/update/slice -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/operator/update/setOnInsert -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/operator/query/geometry -> ${base}/${version}/reference/operators/ +[v2.2]: /${version}/reference/operator/query/geoIntersects -> ${base}/${version}/reference/operators/ +(v2.2-*]: /${version}/reference/operator/query/within -> ${base}/${version}/reference/operator/query/geoWithin/ +[*]: /${version}/reference/aggregation/add -> ${base}/${version}/reference/operator/aggregation/add/ +(v2.2-*]: /${version}/reference/operator/aggregation/operators -> ${base}/${version}/reference/operator/aggregation/ +(v2.2-*]: /${version}/reference/operator/aggregation/operator-arithmetic -> ${base}/${version}/reference/operator/aggregation-arithmetic/ +(v2.2-*]: /${version}/reference/operator/aggregation/operator-boolean -> ${base}/${version}/reference/operator/aggregation-boolean/ +(v2.2-*]: /${version}/reference/operator/aggregation/operator-comparison -> ${base}/${version}/reference/operator/aggregation-comparison/ +(v2.2-*]: /${version}/reference/operator/aggregation/operator-conditional -> ${base}/${version}/reference/operator/aggregation-conditional/ +(v2.2-*]: /${version}/reference/operator/aggregation/operator-date -> ${base}/${version}/reference/operator/aggregation-date/ +(v2.2-*]: /${version}/reference/operator/aggregation/operator-group -> ${base}/${version}/reference/operator/aggregation-group/ +[*]: /${version}/reference/operator/aggregation-nav -> ${base}/${version}/reference/operator/aggregation/ +(v2.2-*]: /${version}/reference/operator/aggregation/operator-nav -> ${base}/${version}/reference/operator/aggregation/ +(v2.2-*]: /${version}/reference/operator/aggregation/operator-pipeline -> ${base}/${version}/reference/operator/aggregation-pipeline/ +(v2.2-*]: /${version}/reference/operator/aggregation/operator-string -> ${base}/${version}/reference/operator/aggregation-string/ +(v2.2-*]: /${version}/reference/operator/nav-query -> ${base}/${version}/reference/operator/query/ +(v2.2-*]: /${version}/reference/operator/nav-update -> ${base}/${version}/reference/operator/update/ +[v2.2]: /${version}/reference/operator/aggregation-arithmetic -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/operator/aggregation-boolean -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/operator/aggregation-comparison -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/operator/aggregation-conditional -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/operator/aggregation-date -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/operator/aggregation-group -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/operator/aggregation-nav -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/operator/aggregation-pipeline -> ${base}/${version}/reference/operator/ +[v2.2]: /${version}/reference/operator/aggregation-string -> ${base}/${version}/reference/operator/ +(v2.6-*]: /${version}/contributors/drivers -> ${base}/${version}/ecosystem/drivers/ (v2.6-*]: /${version}/contributors -> https://github.com/mongodb/mongo/wiki/ (v2.6-*]: /${version}/contributors/getting-started -> https://github.com/mongodb/mongo/wiki/ -(v2.6-*]: /${version}/contributors/server-guidelines -> https://github.com/mongodb/mongo/wiki/Server-Code-Style +(v2.6-*]: /${version}/contributors/server-guidelines -> https://github.com/mongodb/mongo/wiki/Server-Code-Style/ (v2.6-*]: /${version}/contributors/server-resources -> https://github.com/mongodb/mongo/wiki/ -(v2.6-*]: /${version}/contributors/reference/drivers -> ${base}/${version}/ecosystem/drivers +(v2.6-*]: /${version}/contributors/reference/drivers -> ${base}/${version}/ecosystem/drivers/ (v2.6-*]: /${version}/contributors/reference/durability-internals -> https://github.com/mongodb/mongo/wiki/ -(v2.6-*]: /${version}/contributors/reference/server-code-style -> https://github.com/mongodb/mongo/wiki/Server-Code-Style -(v2.6-*]: /${version}/contributors/reference/server-exception-architecture -> https://github.com/mongodb/mongo/wiki/Server-Exception-Architecture -(v2.6-*]: /${version}/contributors/reference/server-string-manipulation -> https://github.com/mongodb/mongo/wiki/Server-String-Manipulation -(v2.6-*]: /${version}/contributors/reference/js-benchmarking-harness -> https://github.com/mongodb/mongo/wiki/JavaScript-Benchmarking-Harness -(v2.6-*]: /${version}/contributors/reference/drivers-style-guidelines -> ${base}/${version}/ecosystem/drivers -(v2.6-*]: /${version}/contributors/reference/parsing-stack-traces -> https://github.com/mongodb/mongo/wiki/Parsing-Stack-Traces +(v2.6-*]: /${version}/contributors/reference/server-code-style -> https://github.com/mongodb/mongo/wiki/Server-Code-Style/ +(v2.6-*]: /${version}/contributors/reference/server-exception-architecture -> https://github.com/mongodb/mongo/wiki/Server-Exception-Architecture/ +(v2.6-*]: /${version}/contributors/reference/server-string-manipulation -> https://github.com/mongodb/mongo/wiki/Server-String-Manipulation/ +(v2.6-*]: /${version}/contributors/reference/js-benchmarking-harness -> https://github.com/mongodb/mongo/wiki/JavaScript-Benchmarking-Harness/ +(v2.6-*]: /${version}/contributors/reference/drivers-style-guidelines -> ${base}/${version}/ecosystem/drivers/ +(v2.6-*]: /${version}/contributors/reference/parsing-stack-traces -> https://github.com/mongodb/mongo/wiki/Parsing-Stack-Traces/ (v2.6-*]: /${version}/contributors/reference/resources-for-contributors -> https://github.com/mongodb/mongo/wiki/ -(v2.6-*]: /${version}/contributors/reference/server-design-guidelines -> https://github.com/mongodb/mongo/wiki/Server-Design-Guidelines -(v2.6-*]: /${version}/contributors/reference/server-logging-rules -> https://github.com/mongodb/mongo/wiki/Server-Logging-Rules -(v2.6-*]: /${version}/contributors/reference/server-memory-management -> https://github.com/mongodb/mongo/wiki/Server-Memory-Management -(v2.6-*]: /${version}/contributors/tutorial/build-mongodb-from-source -> https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source -(v2.6-*]: /${version}/contributors/tutorial/choose-a-project -> https://github.com/mongodb/mongo/wiki/Choose-A-Jira-Ticket -(v2.6-*]: /${version}/contributors/tutorial/test-the-mongodb-server -> https://github.com/mongodb/mongo/wiki/Test-The-Mongodb-Server -(v2.6-*]: /${version}/contributors/tutorial/write-tests-for-server-code -> https://github.com/mongodb/mongo/wiki/Write-Tests-For-Server-Code -(v2.6-*]: /${version}/contributors/tutorial/build-tools-from-source -> https://github.com/mongodb/mongo/wiki/Build-Tools-From-Source -(v2.6-*]: /${version}/contributors/tutorial/choose-a-jira-ticket -> https://github.com/mongodb/mongo/wiki/Choose-A-Jira-Ticket +(v2.6-*]: /${version}/contributors/reference/server-design-guidelines -> https://github.com/mongodb/mongo/wiki/Server-Design-Guidelines/ +(v2.6-*]: /${version}/contributors/reference/server-logging-rules -> https://github.com/mongodb/mongo/wiki/Server-Logging-Rules/ +(v2.6-*]: /${version}/contributors/reference/server-memory-management -> https://github.com/mongodb/mongo/wiki/Server-Memory-Management/ +(v2.6-*]: /${version}/contributors/tutorial/build-mongodb-from-source -> https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source/ +(v2.6-*]: /${version}/contributors/tutorial/choose-a-project -> https://github.com/mongodb/mongo/wiki/Choose-A-Jira-Ticket/ +(v2.6-*]: /${version}/contributors/tutorial/test-the-mongodb-server -> https://github.com/mongodb/mongo/wiki/Test-The-Mongodb-Server/ +(v2.6-*]: /${version}/contributors/tutorial/write-tests-for-server-code -> https://github.com/mongodb/mongo/wiki/Write-Tests-For-Server-Code/ +(v2.6-*]: /${version}/contributors/tutorial/build-tools-from-source -> https://github.com/mongodb/mongo/wiki/Build-Tools-From-Source/ +(v2.6-*]: /${version}/contributors/tutorial/choose-a-jira-ticket -> https://github.com/mongodb/mongo/wiki/Choose-A-Jira-Ticket/ (v2.6-*]: /${version}/contributors/tutorial/set-up-a-github-fork -> https://github.com/mongodb/mongo/wiki/ (v2.6-*]: /${version}/contributors/tutorial/submit-a-github-pull-request -> https://github.com/mongodb/mongo/wiki/ -(v2.6-*]: /${version}/contributors/tutorial/submit-bug-reports -> https://github.com/mongodb/mongo/wiki/Submit-Bug-Reports -(v2.6-*]: /${version}/contributors/core/drivers -> ${base}/${version}/ecosystem/drivers +(v2.6-*]: /${version}/contributors/tutorial/submit-bug-reports -> https://github.com/mongodb/mongo/wiki/Submit-Bug-Reports/ +(v2.6-*]: /${version}/contributors/core/drivers -> ${base}/${version}/ecosystem/drivers/ (v2.6-*]: /${version}/contributors/core/style-guidelines -> https://github.com/mongodb/mongo/wiki/ [*]: /${version}/reference/command/captrunc -> ${base}/${version}/reference/command/ [*]: /${version}/reference/command/configureFailPoint -> ${base}/${version}/reference/command/ @@ -899,801 +899,799 @@ symlink: v4.4 -> master raw: /meta-driver/ -> https://github.com/mongodb/specifications/ raw: /meta-driver/master -> https://github.com/mongodb/specifications/ raw: /meta-driver/master/about -> https://github.com/mongodb/specifications/ -raw: /meta-driver/master/contents -> https://github.com/mongodb/specifications/tree/master/source -raw: /meta-driver/master/tutorial -> https://www.mongodb.com/presentations/how-build-mongodb-driver -raw: /meta-driver/master/specification -> http://bsonspec.org/spec.html -raw: /meta-driver/master/specification/bson -> http://bsonspec.org/spec.html +raw: /meta-driver/master/contents -> https://github.com/mongodb/specifications/tree/master/source/ +raw: /meta-driver/master/tutorial -> https://www.mongodb.com/presentations/how-build-mongodb-driver/ +raw: /meta-driver/master/specification -> http://bsonspec.org/spec.html/ +raw: /meta-driver/master/specification/bson -> http://bsonspec.org/spec.html/ raw: /meta-driver/master/legacy -> https://github.com/mongodb/specifications/ -raw: /meta-driver/master/legacy/implement-authentication-in-driver -> https://github.com/mongodb/specifications/blob/master/source/auth/auth.rst -raw: /meta-driver/master/legacy/gridfs-specification -> https://github.com/mongodb/specifications/blob/master/source/gridfs/gridfs-spec.rst +raw: /meta-driver/master/legacy/implement-authentication-in-driver -> https://github.com/mongodb/specifications/blob/master/source/auth/auth.rst/ +raw: /meta-driver/master/legacy/gridfs-specification -> https://github.com/mongodb/specifications/blob/master/source/gridfs/gridfs-spec.rst/ raw: /meta-driver/master/legacy/error-handling-in-drivers -> https://github.com/mongodb/specifications/ raw: /meta-driver/master/legacy/spec-notes-suggestions-for-mongodb-drivers -> https://github.com/mongodb/specifications/ -raw: /meta-driver/master/legacy/notes-on-pooling-for-mongodb-drivers -> https://github.com/mongodb/specifications/blob/master/source/server-selection/server-selection.rst -raw: /meta-driver/master/legacy/connect-driver-to-replica-set -> https://github.com/mongodb/specifications/blob/master/source/connection-string/connection-string-spec.rst +raw: /meta-driver/master/legacy/notes-on-pooling-for-mongodb-drivers -> https://github.com/mongodb/specifications/blob/master/source/server-selection/server-selection.rst/ +raw: /meta-driver/master/legacy/connect-driver-to-replica-set -> https://github.com/mongodb/specifications/blob/master/source/connection-string/connection-string-spec.rst/ raw: /meta-driver/master/legacy/driver-test-tools -> https://github.com/mongodb/specifications/ raw: /meta-driver/master/legacy/bson -> http://bsonspec.org/ raw: /meta-driver/master/legacy/conventions-for-mongodb-drivers -> https://github.com/mongodb/specifications/ raw: /meta-driver/master/legacy/feature-checklist-for-mongodb-drivers -> https://github.com/mongodb/specifications/ raw: /meta-driver/master/legacy/mongodb-driver-requirements -> https://github.com/mongodb/specifications/ -raw: /meta-driver/master/legacy/mongodb-wire-protocol -> ${base}/manual/reference/mongodb-wire-protocol -raw: /meta-driver/latest/legacy/mongodb-wire-protocol -> ${base}/manual/reference/mongodb-wire-protocol +raw: /meta-driver/master/legacy/mongodb-wire-protocol -> ${base}/manual/reference/mongodb-wire-protocol/ +raw: /meta-driver/latest/legacy/mongodb-wire-protocol -> ${base}/manual/reference/mongodb-wire-protocol/ raw: /meta-driver/latest -> https://github.com/mongodb/specifications/ raw: /meta-driver/latest/about -> https://github.com/mongodb/specifications/ -raw: /meta-driver/latest/contents -> https://github.com/mongodb/specifications/tree/master/source -raw: /meta-driver/latest/tutorial -> https://www.mongodb.com/presentations/how-build-mongodb-driver -raw: /meta-driver/latest/specification/bson -> http://bsonspec.org/spec.html -raw: /meta-driver/latest/specification -> http://bsonspec.org/spec.html +raw: /meta-driver/latest/contents -> https://github.com/mongodb/specifications/tree/master/source/ +raw: /meta-driver/latest/tutorial -> https://www.mongodb.com/presentations/how-build-mongodb-driver/ +raw: /meta-driver/latest/specification/bson -> http://bsonspec.org/spec.html/ +raw: /meta-driver/latest/specification -> http://bsonspec.org/spec.html/ raw: /meta-driver/latest/legacy -> https://github.com/mongodb/specifications/ -raw: /meta-driver/latest/legacy/implement-authentication-in-driver -> https://github.com/mongodb/specifications/blob/master/source/auth/auth.rst -raw: /meta-driver/latest/legacy/gridfs-specification -> https://github.com/mongodb/specifications/blob/master/source/gridfs/gridfs-spec.rst +raw: /meta-driver/latest/legacy/implement-authentication-in-driver -> https://github.com/mongodb/specifications/blob/master/source/auth/auth.rst/ +raw: /meta-driver/latest/legacy/gridfs-specification -> https://github.com/mongodb/specifications/blob/master/source/gridfs/gridfs-spec.rst/ raw: /meta-driver/latest/legacy/error-handling-in-drivers -> https://github.com/mongodb/specifications/ raw: /meta-driver/latest/legacy/spec-notes-suggestions-for-mongodb-drivers -> https://github.com/mongodb/specifications/ -raw: /meta-driver/latest/legacy/notes-on-pooling-for-mongodb-drivers -> https://github.com/mongodb/specifications/blob/master/source/server-selection/server-selection.rst -raw: /meta-driver/latest/legacy/connect-driver-to-replica-set -> https://github.com/mongodb/specifications/blob/master/source/connection-string/connection-string-spec.rst +raw: /meta-driver/latest/legacy/notes-on-pooling-for-mongodb-drivers -> https://github.com/mongodb/specifications/blob/master/source/server-selection/server-selection.rst/ +raw: /meta-driver/latest/legacy/connect-driver-to-replica-set -> https://github.com/mongodb/specifications/blob/master/source/connection-string/connection-string-spec.rst/ raw: /meta-driver/latest/legacy/driver-test-tools -> https://github.com/mongodb/specifications/ raw: /meta-driver/latest/legacy/bson -> http://bsonspec.org/ raw: /meta-driver/latest/legacy/conventions-for-mongodb-drivers -> https://github.com/mongodb/specifications/ raw: /meta-driver/latest/legacy/feature-checklist-for-mongodb-drivers -> https://github.com/mongodb/specifications/ raw: /meta-driver/latest/legacy/mongodb-driver-requirements -> https://github.com/mongodb/specifications/ -raw: /meta-driver/legacy/implement-authentication-in-driver -> https://github.com/mongodb/specifications/blob/master/source/auth/auth.rst -raw: /meta-driver/legacy/gridfs-specification -> https://github.com/mongodb/specifications/blob/master/source/gridfs/gridfs-spec.rst +raw: /meta-driver/legacy/implement-authentication-in-driver -> https://github.com/mongodb/specifications/blob/master/source/auth/auth.rst/ +raw: /meta-driver/legacy/gridfs-specification -> https://github.com/mongodb/specifications/blob/master/source/gridfs/gridfs-spec.rst/ raw: /meta-driver/legacy/error-handling-in-drivers -> https://github.com/mongodb/specifications/ raw: /meta-driver/legacy/spec-notes-suggestions-for-mongodb-drivers -> https://github.com/mongodb/specifications/ -raw: /meta-driver/legacy/notes-on-pooling-for-mongodb-drivers -> https://github.com/mongodb/specifications/blob/master/source/server-selection/server-selection.rst -raw: /meta-driver/legacy/connect-driver-to-replica-set -> https://github.com/mongodb/specifications/blob/master/source/connection-string/connection-string-spec.rst +raw: /meta-driver/legacy/notes-on-pooling-for-mongodb-drivers -> https://github.com/mongodb/specifications/blob/master/source/server-selection/server-selection.rst/ +raw: /meta-driver/legacy/connect-driver-to-replica-set -> https://github.com/mongodb/specifications/blob/master/source/connection-string/connection-string-spec.rst/ raw: /meta-driver/legacy/driver-test-tools -> https://github.com/mongodb/specifications/ raw: /meta-driver/legacy/bson -> http://bsonspec.org/ raw: /meta-driver/legacy/conventions-for-mongodb-drivers -> https://github.com/mongodb/specifications/ raw: /meta-driver/legacy/feature-checklist-for-mongodb-drivers -> https://github.com/mongodb/specifications/ raw: /meta-driver/legacy/mongodb-driver-requirements -> https://github.com/mongodb/specifications/ -raw: /meta-driver/legacy/mongodb-wire-protocol -> ${base}/manual/reference/mongodb-wire-protocol -[*-v3.2]: /${version}/core/views -> ${base}/${version}/core/databases-and-collections -[*-v3.2]: /${version}/reference/method/db.createView -> ${base}/${version}/reference/method/db.createCollection -[*-v3.2]: /${version}/core/zone-sharding -> ${base}/${version}/core/tag-aware-sharding -[*-v3.2]: /${version}/tutorial/manage-shard-zone -> ${base}/${version}/tutorial/administer-shard-tags -(v3.2-*]: /${version}/core/tag-aware-sharding -> ${base}/${version}/core/zone-sharding -(v3.2-*]: /${version}/tutorial/administer-shard-tags -> ${base}/${version}/tutorial/manage-shard-zone -[*-v3.2]: /${version}/reference/method/cursor.collation -> ${base}/${version}/reference/method/cursor.sort -[*-v3.2]: /${version}/reference/method/Bulk.find.collation -> ${base}/${version}/reference/method/Bulk.find -[*-v3.2]: /${version}/reference/bson-type-comparison-order -> ${base}/${version}/reference/bson-types -raw: /manual/release-notes/3.3-dev-series-collation -> ${base}/manual/reference/collation -raw: /master/release-notes/3.3-dev-series-collation -> ${base}/master/reference/collation -raw: /manual/release-notes/3.3-dev-series -> ${base}/manual/release-notes/3.4 -raw: /master/release-notes/3.3-dev-series -> ${base}/master/release-notes/3.4 -raw: /manual/release-notes/3.3-dev-series-compatibility -> ${base}/manual/release-notes/3.4-compatibility -raw: /master/release-notes/3.3-dev-series-compatibility -> ${base}/master/release-notes/3.4-compatibility -raw: /manual/release-notes/3.3-dev-series-reference -> ${base}/manual/release-notes/3.4-reference -raw: /master/release-notes/3.3-dev-series-reference -> ${base}/master/release-notes/3.4-reference - -[*-v3.0]: /${version}/tutorial/deploy-sharded-cluster-with-keyfile-access-control -> ${base}/${version}/administration/security -[*-v3.0]: /${version}/tutorial/enforce-keyfile-access-control-in-existing-sharded-cluster -> ${base}/${version}/tutorial/enable-internal-authentication +raw: /meta-driver/legacy/mongodb-wire-protocol -> ${base}/manual/reference/mongodb-wire-protocol/ +[*-v3.2]: /${version}/core/views -> ${base}/${version}/core/databases-and-collections/ +[*-v3.2]: /${version}/reference/method/db.createView -> ${base}/${version}/reference/method/db.createCollection/ +[*-v3.2]: /${version}/core/zone-sharding -> ${base}/${version}/core/tag-aware-sharding/ +[*-v3.2]: /${version}/tutorial/manage-shard-zone -> ${base}/${version}/tutorial/administer-shard-tags/ +(v3.2-*]: /${version}/core/tag-aware-sharding -> ${base}/${version}/core/zone-sharding/ +(v3.2-*]: /${version}/tutorial/administer-shard-tags -> ${base}/${version}/tutorial/manage-shard-zone/ +[*-v3.2]: /${version}/reference/method/cursor.collation -> ${base}/${version}/reference/method/cursor.sort/ +[*-v3.2]: /${version}/reference/method/Bulk.find.collation -> ${base}/${version}/reference/method/Bulk.find/ +[*-v3.2]: /${version}/reference/bson-type-comparison-order -> ${base}/${version}/reference/bson-types/ +raw: /manual/release-notes/3.3-dev-series-collation -> ${base}/manual/reference/collation/ +raw: /master/release-notes/3.3-dev-series-collation -> ${base}/master/reference/collation/ +raw: /manual/release-notes/3.3-dev-series -> ${base}/manual/release-notes/3.4/ +raw: /master/release-notes/3.3-dev-series -> ${base}/master/release-notes/3.4/ +raw: /manual/release-notes/3.3-dev-series-compatibility -> ${base}/manual/release-notes/3.4-compatibility/ +raw: /master/release-notes/3.3-dev-series-compatibility -> ${base}/master/release-notes/3.4-compatibility/ +raw: /manual/release-notes/3.3-dev-series-reference -> ${base}/manual/release-notes/3.4-reference/ +raw: /master/release-notes/3.3-dev-series-reference -> ${base}/master/release-notes/3.4-reference/ + +[*-v3.0]: /${version}/tutorial/deploy-sharded-cluster-with-keyfile-access-control -> ${base}/${version}/administration/security/ +[*-v3.0]: /${version}/tutorial/enforce-keyfile-access-control-in-existing-sharded-cluster -> ${base}/${version}/tutorial/enable-internal-authentication/ [*-v3.2]: /${version}/release-notes/3.4-compatibility -> ${base}/${version}/release-notes/ [*-v3.0]: /${version}/release-notes/3.4 -> ${base}/${version}/release-notes/ [*-v3.2]: /${version}/release-notes/3.4-compatibility -> ${base}/${version}/release-notes/ [*-v3.2]: /${version}/release-notes/3.4-reference -> ${base}/${version}/release-notes/ -[*-v3.2]: /${version}/reference/collation -> ${base}/${version}/reference/bson-types -[*-v3.2]: /${version}/reference/collation-locales-defaults -> ${base}/${version}/reference/bson-types -[*-v3.2]: /${version}/reference/operator/aggregation/graphLookup -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/bucket -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/bucketAuto -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/facet -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/sortByCount -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/addFields -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/replaceRoot -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/in -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/indexOfArray -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/indexOfBytes -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/indexOfCP -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/reverseArray -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/range -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/split -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/switch -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/isoDayOfWeek -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/isoWeek -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/isoWeekYear -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/collStats -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/type -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/substrBytes -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/substrCP -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/strLenBytes -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/strLenCP -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/reduce -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/zip -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/program/mongoreplay -> ${base}/${version}/reference/program -(v3.2-*]: /${version}/tutorial/migrate-config-servers-with-different-hostnames -> ${base}/${version}/tutorial/replace-config-server -(v3.2-*]: /${version}/migrate-config-servers-with-same-hostname -> ${base}/${version}/tutorial/replace-config-server -[v3.2]: /${version}/release-notes/3.4 -> ${base}/${version}/manual/release-notes/3.4 -[*-v3.2]: /${version}/tutorial/perform-findAndModify-linearizable-reads -> ${base}/${version}/tutorial/perform-findAndModify-quorum-reads -(v3.2-*]: /${version}/tutorial/perform-findAndModify-quorum-reads -> ${base}/${version}/tutorial/perform-findAndModify-linearizable-reads -[*-v3.2]: /${version}/release-notes/3.4-downgrade -> ${base}/${version}/release-notes -[*-v3.2]: /${version}/release-notes/3.4-downgrade-replica-set -> ${base}/${version}/release-notes -[*-v3.2]: /${version}/release-notes/3.4-downgrade-sharded-cluster -> ${base}/${version}/release-notes -[*-v3.2]: /${version}/release-notes/3.4-downgrade-standalone -> ${base}/${version}/release-notes -[*-v3.2]: /${version}/release-notes/3.4-upgrade-replica-set -> ${base}/${version}/release-notes -[*-v3.2]: /${version}/release-notes/3.4-upgrade-sharded-cluster -> ${base}/${version}/release-notes -[*-v3.2]: /${version}/release-notes/3.4-upgrade-standalone -> ${base}/${version}/release-notes -[*-v3.2]: /${version}/reference/command/setFeatureCompatibilityVersion -> ${base}/${version}/reference/command -[*-v3.2]: /${version}/reference/command/balancerStart -> ${base}/${version}/reference/method/sh.startBalancer -[*-v3.2]: /${version}/reference/command/balancerStatus -> ${base}/${version}/reference/method/sh.getBalancerState -[*-v3.2]: /${version}/reference/command/balancerStop -> ${base}/${version}/reference/method/sh.stopBalancer -[*-v3.2]: /${version}/tutorial/authenticate-nativeldap-activedirectory -> ${base}/${version}/core/security-ldap -[*-v3.2]: /${version}/tutorial/kerberos-auth-activedirectory-authz -> ${base}/${version}/core/security-ldap -[*-v3.2]: /${version}/core/security-ldap-external -> ${base}/${version}/core/security-ldap -[*-v3.2]: /${version}/reference/program/mongoldap -> ${base}/${version}/reference/program -[*]: /${version}/MongoDB-manual.pdf -> ${base}/${version}/meta/pdfs -[*]: /${version}/MongoDB-reference-manual.pdf -> ${base}/${version}/meta/pdfs -[*]: /${version}/MongoDB-crud-guide.pdf -> ${base}/${version}/meta/pdfs -[*]: /${version}/MongoDB-indexes-guide.pdf -> ${base}/${version}/meta/pdfs -[*]: /${version}/MongoDB-administration-guide.pdf -> ${base}/${version}/meta/pdfs -[*]: /${version}/MongoDB-sharding-guide.pdf -> ${base}/${version}/meta/pdfs -[*]: /${version}/MongoDB-aggregation-guide.pdf -> ${base}/${version}/meta/pdfs -[*]: /${version}/MongoDB-data-models-guide.pdf -> ${base}/${version}/meta/pdfs -[*]: /${version}/MongoDB-replication-guide.pdf -> ${base}/${version}/meta/pdfs -[*]: /${version}/MongoDB-security-guide.pdf -> ${base}/${version}/meta/pdfs -[master]: /${version}/MongoDB-manual-master.pdf -> ${base}/${version}/meta/pdfs -[master]: /${version}/MongoDB-reference-manual-master.pdf -> ${base}/${version}/meta/pdfs -[master]: /${version}/MongoDB-crud-guide-master.pdf -> ${base}/${version}/meta/pdfs -[master]: /${version}/MongoDB-indexes-guide-master.pdf -> ${base}/${version}/meta/pdfs -[master]: /${version}/MongoDB-administration-guide-master.pdf -> ${base}/${version}/meta/pdfs -[master]: /${version}/MongoDB-sharding-guide-master.pdf -> ${base}/${version}/meta/pdfs -[master]: /${version}/MongoDB-aggregation-guide-master.pdf -> ${base}/${version}/meta/pdfs -[master]: /${version}/MongoDB-data-models-guide-master.pdf -> ${base}/${version}/meta/pdfs -[master]: /${version}/MongoDB-replication-guide-master.pdf -> ${base}/${version}/meta/pdfs -[master]: /${version}/MongoDB-security-guide-master.pdf -> ${base}/${version}/meta/pdfs -[v3.0]: /${version}/MongoDB-manual-v3.0.pdf -> ${base}/${version}/meta/pdfs -[v3.0]: /${version}/MongoDB-reference-manual-v3.0.pdf -> ${base}/${version}/meta/pdfs -[v3.0]: /${version}/MongoDB-crud-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs -[v3.0]: /${version}/MongoDB-indexes-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs -[v3.0]: /${version}/MongoDB-administration-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs -[v3.0]: /${version}/MongoDB-sharding-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs -[v3.0]: /${version}/MongoDB-aggregation-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs -[v3.0]: /${version}/MongoDB-data-models-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs -[v3.0]: /${version}/MongoDB-replication-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs -[v3.0]: /${version}/MongoDB-security-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs -[v2.6]: /${version}/MongoDB-manual-v2.6.pdf -> ${base}/${version}/meta/pdfs -[v2.6]: /${version}/MongoDB-reference-manual-v2.6.pdf -> ${base}/${version}/meta/pdfs -[v2.6]: /${version}/MongoDB-crud-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs -[v2.6]: /${version}/MongoDB-indexes-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs -[v2.6]: /${version}/MongoDB-administration-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs -[v2.6]: /${version}/MongoDB-sharding-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs -[v2.6]: /${version}/MongoDB-aggregation-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs -[v2.6]: /${version}/MongoDB-data-models-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs -[v2.6]: /${version}/MongoDB-replication-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs -[v2.6]: /${version}/MongoDB-security-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs -[v2.4]: /${version}/MongoDB-manual-v2.4.pdf -> ${base}/${version}/meta/pdfs -[v2.4]: /${version}/MongoDB-reference-manual-v2.4.pdf -> ${base}/${version}/meta/pdfs -[v2.4]: /${version}/MongoDB-crud-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs -[v2.4]: /${version}/MongoDB-indexes-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs -[v2.4]: /${version}/MongoDB-administration-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs -[v2.4]: /${version}/MongoDB-sharding-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs -[v2.4]: /${version}/MongoDB-aggregation-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs -[v2.4]: /${version}/MongoDB-data-models-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs -[v2.4]: /${version}/MongoDB-replication-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs -[v2.4]: /${version}/MongoDB-security-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs -[v2.2]: /${version}/MongoDB-manual-v2.2.pdf -> ${base}/${version}/meta/pdfs -[v2.2]: /${version}/MongoDB-reference-manual-v2.2.pdf -> ${base}/${version}/meta/pdfs -[v2.2]: /${version}/MongoDB-crud-guide-v2.2.pdf -> ${base}/${version}/meta/pdfs +[*-v3.2]: /${version}/reference/collation -> ${base}/${version}/reference/bson-types/ +[*-v3.2]: /${version}/reference/collation-locales-defaults -> ${base}/${version}/reference/bson-types/ +[*-v3.2]: /${version}/reference/operator/aggregation/graphLookup -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/bucket -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/bucketAuto -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/facet -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/sortByCount -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/addFields -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/replaceRoot -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/in -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/indexOfArray -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/indexOfBytes -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/indexOfCP -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/reverseArray -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/range -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/split -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/switch -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/isoDayOfWeek -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/isoWeek -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/isoWeekYear -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/collStats -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/type -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/substrBytes -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/substrCP -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/strLenBytes -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/strLenCP -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/reduce -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/zip -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/program/mongoreplay -> ${base}/${version}/reference/program/ +(v3.2-*]: /${version}/tutorial/migrate-config-servers-with-different-hostnames -> ${base}/${version}/tutorial/replace-config-server/ +(v3.2-*]: /${version}/migrate-config-servers-with-same-hostname -> ${base}/${version}/tutorial/replace-config-server/ +[v3.2]: /${version}/release-notes/3.4 -> ${base}/${version}/manual/release-notes/3.4/ +[*-v3.2]: /${version}/tutorial/perform-findAndModify-linearizable-reads -> ${base}/${version}/tutorial/perform-findAndModify-quorum-reads/ +(v3.2-*]: /${version}/tutorial/perform-findAndModify-quorum-reads -> ${base}/${version}/tutorial/perform-findAndModify-linearizable-reads/ +[*-v3.2]: /${version}/release-notes/3.4-downgrade -> ${base}/${version}/release-notes/ +[*-v3.2]: /${version}/release-notes/3.4-downgrade-replica-set -> ${base}/${version}/release-notes/ +[*-v3.2]: /${version}/release-notes/3.4-downgrade-sharded-cluster -> ${base}/${version}/release-notes/ +[*-v3.2]: /${version}/release-notes/3.4-downgrade-standalone -> ${base}/${version}/release-notes/ +[*-v3.2]: /${version}/release-notes/3.4-upgrade-replica-set -> ${base}/${version}/release-notes/ +[*-v3.2]: /${version}/release-notes/3.4-upgrade-sharded-cluster -> ${base}/${version}/release-notes/ +[*-v3.2]: /${version}/release-notes/3.4-upgrade-standalone -> ${base}/${version}/release-notes/ +[*-v3.2]: /${version}/reference/command/setFeatureCompatibilityVersion -> ${base}/${version}/reference/command/ +[*-v3.2]: /${version}/reference/command/balancerStart -> ${base}/${version}/reference/method/sh.startBalancer/ +[*-v3.2]: /${version}/reference/command/balancerStatus -> ${base}/${version}/reference/method/sh.getBalancerState/ +[*-v3.2]: /${version}/reference/command/balancerStop -> ${base}/${version}/reference/method/sh.stopBalancer/ +[*-v3.2]: /${version}/tutorial/authenticate-nativeldap-activedirectory -> ${base}/${version}/core/security-ldap/ +[*-v3.2]: /${version}/tutorial/kerberos-auth-activedirectory-authz -> ${base}/${version}/core/security-ldap/ +[*-v3.2]: /${version}/core/security-ldap-external -> ${base}/${version}/core/security-ldap/ +[*-v3.2]: /${version}/reference/program/mongoldap -> ${base}/${version}/reference/program/ +[*]: /${version}/MongoDB-manual.pdf -> ${base}/${version}/meta/pdfs/ +[*]: /${version}/MongoDB-reference-manual.pdf -> ${base}/${version}/meta/pdfs/ +[*]: /${version}/MongoDB-crud-guide.pdf -> ${base}/${version}/meta/pdfs/ +[*]: /${version}/MongoDB-indexes-guide.pdf -> ${base}/${version}/meta/pdfs/ +[*]: /${version}/MongoDB-administration-guide.pdf -> ${base}/${version}/meta/pdfs/ +[*]: /${version}/MongoDB-sharding-guide.pdf -> ${base}/${version}/meta/pdfs/ +[*]: /${version}/MongoDB-aggregation-guide.pdf -> ${base}/${version}/meta/pdfs/ +[*]: /${version}/MongoDB-data-models-guide.pdf -> ${base}/${version}/meta/pdfs/ +[*]: /${version}/MongoDB-replication-guide.pdf -> ${base}/${version}/meta/pdfs/ +[*]: /${version}/MongoDB-security-guide.pdf -> ${base}/${version}/meta/pdfs/ +[master]: /${version}/MongoDB-manual-master.pdf -> ${base}/${version}/meta/pdfs/ +[master]: /${version}/MongoDB-reference-manual-master.pdf -> ${base}/${version}/meta/pdfs/ +[master]: /${version}/MongoDB-crud-guide-master.pdf -> ${base}/${version}/meta/pdfs/ +[master]: /${version}/MongoDB-indexes-guide-master.pdf -> ${base}/${version}/meta/pdfs/ +[master]: /${version}/MongoDB-administration-guide-master.pdf -> ${base}/${version}/meta/pdfs/ +[master]: /${version}/MongoDB-sharding-guide-master.pdf -> ${base}/${version}/meta/pdfs/ +[master]: /${version}/MongoDB-aggregation-guide-master.pdf -> ${base}/${version}/meta/pdfs/ +[master]: /${version}/MongoDB-data-models-guide-master.pdf -> ${base}/${version}/meta/pdfs/ +[master]: /${version}/MongoDB-replication-guide-master.pdf -> ${base}/${version}/meta/pdfs/ +[master]: /${version}/MongoDB-security-guide-master.pdf -> ${base}/${version}/meta/pdfs/ +[v3.0]: /${version}/MongoDB-manual-v3.0.pdf -> ${base}/${version}/meta/pdfs/ +[v3.0]: /${version}/MongoDB-reference-manual-v3.0.pdf -> ${base}/${version}/meta/pdfs/ +[v3.0]: /${version}/MongoDB-crud-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs/ +[v3.0]: /${version}/MongoDB-indexes-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs/ +[v3.0]: /${version}/MongoDB-administration-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs/ +[v3.0]: /${version}/MongoDB-sharding-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs/ +[v3.0]: /${version}/MongoDB-aggregation-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs/ +[v3.0]: /${version}/MongoDB-data-models-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs/ +[v3.0]: /${version}/MongoDB-replication-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs/ +[v3.0]: /${version}/MongoDB-security-guide-v3.0.pdf -> ${base}/${version}/meta/pdfs/ +[v2.6]: /${version}/MongoDB-manual-v2.6.pdf -> ${base}/${version}/meta/pdfs/ +[v2.6]: /${version}/MongoDB-reference-manual-v2.6.pdf -> ${base}/${version}/meta/pdfs/ +[v2.6]: /${version}/MongoDB-crud-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs/ +[v2.6]: /${version}/MongoDB-indexes-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs/ +[v2.6]: /${version}/MongoDB-administration-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs/ +[v2.6]: /${version}/MongoDB-sharding-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs/ +[v2.6]: /${version}/MongoDB-aggregation-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs/ +[v2.6]: /${version}/MongoDB-data-models-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs/ +[v2.6]: /${version}/MongoDB-replication-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs/ +[v2.6]: /${version}/MongoDB-security-guide-v2.6.pdf -> ${base}/${version}/meta/pdfs/ +[v2.4]: /${version}/MongoDB-manual-v2.4.pdf -> ${base}/${version}/meta/pdfs/ +[v2.4]: /${version}/MongoDB-reference-manual-v2.4.pdf -> ${base}/${version}/meta/pdfs/ +[v2.4]: /${version}/MongoDB-crud-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs/ +[v2.4]: /${version}/MongoDB-indexes-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs/ +[v2.4]: /${version}/MongoDB-administration-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs/ +[v2.4]: /${version}/MongoDB-sharding-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs/ +[v2.4]: /${version}/MongoDB-aggregation-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs/ +[v2.4]: /${version}/MongoDB-data-models-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs/ +[v2.4]: /${version}/MongoDB-replication-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs/ +[v2.4]: /${version}/MongoDB-security-guide-v2.4.pdf -> ${base}/${version}/meta/pdfs/ +[v2.2]: /${version}/MongoDB-manual-v2.2.pdf -> ${base}/${version}/meta/pdfs/ +[v2.2]: /${version}/MongoDB-reference-manual-v2.2.pdf -> ${base}/${version}/meta/pdfs/ +[v2.2]: /${version}/MongoDB-crud-guide-v2.2.pdf -> ${base}/${version}/meta/pdfs/ (v3.0-*]: /${version}/products/bi-connector -> https://docs.mongodb.com/bi-connector/ (v3.0-*]: /${version}/reference/business-intelligence-programs -> https://docs.mongodb.com/bi-connector/ -(v3.0-*]: /${version}/products/faq-bi-connector -> https://docs.mongodb.com/bi-connector/faq -(v3.0-*]: /${version}/products/components-bi-connector -> https://docs.mongodb.com/bi-connector/components -(v3.0-*]: /${version}/products/release-notes/bi-connector -> https://docs.mongodb.com/bi-connector/release-notes -(v3.0-*]: /${version}/reference/program/mongobischema -> https://docs.mongodb.com/bi-connector/reference/mongobischema +(v3.0-*]: /${version}/products/faq-bi-connector -> https://docs.mongodb.com/bi-connector/faq/ +(v3.0-*]: /${version}/products/components-bi-connector -> https://docs.mongodb.com/bi-connector/components/ +(v3.0-*]: /${version}/products/release-notes/bi-connector -> https://docs.mongodb.com/bi-connector/release-notes/ +(v3.0-*]: /${version}/reference/program/mongobischema -> https://docs.mongodb.com/bi-connector/reference/mongobischema/ (v3.0-*]: /${version}/reference/program/mongobiuser -> https://docs.mongodb.com/bi-connector/reference/mongobiuser/ (v3.0-*]: /${version}/reference/program/mongodrdl -> https://docs.mongodb.com/bi-connector/reference/mongodrdl/ (v3.0-*]: /${version}/products/compass -> https://docs.mongodb.com/compass/ [*]: /${version}/products -> ${base}/${version}/ (v3.0-*]: /${version}/products/cloud-manager -> https://docs.cloud.mongodb.com/ -(v3.0-*]: /${version}/products/ops-manager -> https://docs.opsmanager.mongodb.com/current -(v2.6-*]: /${version}/reference/command/getoptime -> ${base}/${version}/reference/command/nav-replication -(v2.6-*]: /${version}/reference/command/closeAllDatabases -> ${base}/${version}/reference/command/nav-administration -[*-v2.6]: /${version}/reference/operator/aggregation/dateToString -> ${base}/${version}/reference/operator/aggregation -(v2.6-*]: /${version}/reference/method/db.addUser -> ${base}/${version}/reference/method/db.createUser -[*-v2.6]: /${version}/reference/log-messages -> ${base}/${version}/reference/configuration-options -[*-v2.6]: /${version}/reference/command/explain -> ${base}/${version}/reference/method/cursor.explain -[*-v2.6]: /${version}/reference/command/replSetGetConfig -> ${base}/${version}/reference/command/nav-replication -[*-v2.6]: /${version}/reference/method/db.collection.explain -> ${base}/${version}/reference/method/cursor.explain -[*-v2.6]: /${version}/reference/method/sh.removeTagRange -> ${base}/${version}/reference/method/js-sharding -[*-v2.6]: /${version}/reference/method/db.getLogComponents -> ${base}/${version}/reference/method -[*-v2.6]: /${version}/reference/method/db.setLogLevel -> ${base}/${version}/reference/method -[*-v2.6]: /${version}/reference/explain-results -> ${base}/${version}/reference/method/cursor.explain -[*-v2.6]: /${version}/reference/operator/query/eq -> ${base}/${version}/reference/operator/query -[*-v2.2]: /${version}/reference/command/text -> ${base}/${version}/reference/command/nav-crud -(v2.6-*]: /${version}/reference/command/text -> ${base}/${version}/reference/operator/query/text -[*-v2.6]: /${version}/reference/command/listCollections -> ${base}/${version}/reference/method/db.getCollectionNames -[*-v2.6]: /${version}/reference/method/db.getCollectionInfos -> ${base}/${version}/reference/method/db.getCollectionNames -[*-v2.6]: /${version}/administration/production-checklist -> ${base}/${version}/administration/production-notes -[*-v2.6]: /${version}/release-notes/3.0-changelog -> ${base}/${version}/release-notes -[*-v2.6]: /${version}/administration/production-checklist-development -> ${base}/${version}/administration/production-notes -[*-v2.6]: /${version}/administration/production-checklist-operations -> ${base}/${version}/administration/production-notes -(v2.6-*]: /${version}/core/import-export -> ${base}/${version}/core/backups -(v2.6-*]: /${version}/tutorial/backup-with-mongodump -> ${base}/${version}/tutorial/backup-and-restore-tools -[*-v2.6]: /${version}/tutorial/backup-and-restore-tools -> ${base}/${version}/tutorial/backup-with-mongodump -[*-v2.6]: /${version}/administration/analyzing-mongodb-performance -> ${base}/${version}/administration/optimization -raw: /master/tutorial/generate-test-data -> http://docs.mongodb.com/getting-started/shell -raw: /manual/tutorial/generate-test-data -> http://docs.mongodb.com/getting-started/shell -[v3.0]: /${version}/tutorial/generate-test-data -> ${base}/${version}http://docs.mongodb.com/getting-started/shell -(v2.4-*]: /${version}/reference/transparent-huge-pages -> ${base}/${version}/tutorial/transparent-huge-pages -[*-v2.2]: /${version}/tutorial/transparent-huge-pages -> ${base}/${version}/administration/production-notes -[*-v3.0]: /${version}/tutorial/perform-findAndModify-quorum-reads -> ${base}/${version}/reference/method/db.collection.findAndModify -(v2.2-*]: /${version}/tutorial/use-capped-collections-for-fast-writes-and-reads -> ${base}/${version}/core/crud-introduction -[*-v2.4]: /${version}/administration/security-auditing -> ${base}/${version}/tutorial/configure-auditing -[*-v2.4]: /${version}/tutorial/configure-audit-filters -> ${base}/${version}/tutorial/configure-auditing -[*-v2.4]: /${version}/administration/security-user-role-management -> ${base}/${version}/administration/security-access-control -[*-v2.6]: /${version}/core/security-concepts-access-control -> ${base}/${version}/core/security -[*-v2.6]: /${version}/core/security-concepts-external-env -> ${base}/${version}/core/security -[*-v2.6]: /${version}/core/security-concepts-network -> ${base}/${version}/core/security -[*-v2.6]: /${version}/tutorial/manage-users-and-roles -> ${base}/${version}/administration/security-user-role-management -(v2.6-*]: /${version}/tutorial/add-user-to-database -> ${base}/${version}/tutorial/manage-users-and-roles -(v2.6-*]: /${version}/tutorial/assign-role-to-user -> ${base}/${version}/tutorial/manage-users-and-roles -(v2.6-*]: /${version}/tutorial/change-user-password -> ${base}/${version}/tutorial/manage-users-and-roles -(v2.6-*]: /${version}/tutorial/change-user-privileges -> ${base}/${version}/tutorial/manage-users-and-roles -(v2.6-*]: /${version}/tutorial/define-roles -> ${base}/${version}/tutorial/manage-users-and-roles -(v2.6-*]: /${version}/tutorial/verify-user-privileges -> ${base}/${version}/tutorial/manage-users-and-roles -(v2.6-*]: /${version}/tutorial/view-roles -> ${base}/${version}/tutorial/manage-users-and-roles -(v2.6-*]: /${version}/reference/method/db.collection.getIndexStats -> ${base}/${version}/reference/indexes -(v2.6-*]: /${version}/reference/method/db.collection.indexStats -> ${base}/${version}/reference/indexes -(v2.6-*]: /${version}/reference/command/indexStats -> ${base}/${version}/reference/indexes -[*-v2.6]: /${version}/tutorial/geospatial-tutorial -> ${base}/${version}/administration/indexes-geo -(v3.0-*]: /${version}/reference/method/cursor.showDiskLoc -> ${base}/${version}/reference/method/cursor.showRecordId -[*-v2.2]: /${version}/reference/method/setVerboseShell -> ${base}/${version}/reference/method -(v2.6-*]: /${version}/core/storage -> ${base}/${version}/storage -[*-v2.6]: /${version}/storage -> ${base}/${version}/core/storage -[*-v2.6]: /${version}/core/mmapv1 -> ${base}/${version}/core/storage -[*-v2.6]: /${version}/core/wiredtiger -> ${base}/${version}/core/storage -[*-v2.6]: /${version}/administration/security-authentication-mechanisms -> ${base}/${version}/administration/security-access-control -[*-v2.6]: /${version}/administration/security-misc -> ${base}/${version}/reference/security -[*-v2.6]: /${version}/core/authentication-mechanisms-enterprise -> ${base}/${version}/core/authentication -[*-v2.6]: /${version}/core/authentication-mechanisms -> ${base}/${version}/core/authentication -[*-v2.6]: /${version}/core/security-built-in-roles -> ${base}/${version}/reference/built-in-roles -[*-v2.6]: /${version}/core/security-encryption-at-rest -> ${base}/${version}/core/security-introduction -[*-v2.6]: /${version}/core/security-encryption -> ${base}/${version}/core/security-introduction -[*-v2.6]: /${version}/core/security-hardening -> ${base}/${version}/core/security-introduction -[*-v2.6]: /${version}/core/security-internal-authentication -> ${base}/${version}/core/authentication -[*-v2.6]: /${version}/core/security-ldap -> ${base}/${version}/core/authentication -[*-v2.6]: /${version}/core/security-mongodb-configuration -> ${base}/${version}/core/security-network -[*-v2.6]: /${version}/core/security-mongodb-cr -> ${base}/${version}/core/authentication -[*-v2.6]: /${version}/core/security-scram-sha-1 -> ${base}/${version}/core/authentication -[*-v2.6]: /${version}/core/security-transport-encryption -> ${base}/${version}/core/security-introduction -[*-v2.6]: /${version}/core/security-user-defined-roles -> ${base}/${version}/core/authorization -[*-v2.6]: /${version}/core/security-users -> ${base}/${version}/core/authentication -[*-v2.6]: /${version}/core/security-x.509 -> ${base}/${version}/core/authentication -[*-v2.6]: /${version}/tutorial/upgrade-keyfile-to-x509 -> ${base}/${version}/tutorial/configure-x509-member-authentication -[*-v2.6]: /${version}/tutorial/enable-internal-authentication -> ${base}/${version}/tutorial/enable-authentication-in-sharded-cluster -(v2.6-*]: /${version}/tutorial/add-admin-user -> ${base}/${version}/tutorial/manage-users-and-roles -(v2.6-*]: /${version}/tutorial/add-user-administrator -> ${base}/${version}/tutorial/manage-users-and-roles -(v2.6-*]: /${version}/tutorial/authenticate-as-client -> ${base}/${version}/tutorial/enable-authentication -(v2.6-*]: /${version}/tutorial/deploy-replica-set-with-auth -> ${base}/${version}/tutorial/enable-internal-authentication -(v2.6-*]: /${version}/tutorial/enable-authentication-in-sharded-cluster -> ${base}/${version}/tutorial/enable-internal-authentication -(v2.6-*]: /${version}/tutorial/enable-authentication-without-bypass -> ${base}/${version}/tutorial/enable-authentication -(v2.6-*]: /${version}/tutorial/generate-key-file -> ${base}/${version}/tutorial/enable-internal-authentication -(v2.6-*]: /${version}/core/security-introduction -> ${base}/${version}/security -(v2.6-*]: /${version}/core/security -> ${base}/${version}/security -(v2.6-*]: /${version}/administration/security-deployment -> ${base}/${version}/administration/security-access-control -(v2.6-*]: /${version}/core/security-concepts-access-control -> ${base}/${version}/core/authorization -(v2.6-*]: /${version}/core/security-concepts-external-env -> ${base}/${version}/core/security-hardening -(v2.6-*]: /${version}/core/security-concepts-network -> ${base}/${version}/core/security-hardening -(v2.6-*]: /${version}/core/security-interface -> ${base}/${version}/core/security-mongodb-configuration -(v2.6-*]: /${version}/release-notes/security -> ${base}/${version}/release-notes -(v3.0-*]: /${version}/release-notes/3.1-dev-series-text-search-enterprise -> ${base}/${version}/tutorial/text-search-with-rlp -[*-v3.0]: /${version}/release-notes/3.1-dev-series-text-search-enterprise -> ${base}/${version}/reference/text-search-languages -[*-v3.0]: /${version}/tutorial/text-search-with-rlp -> ${base}/${version}/reference/text-search-languages -[*-v3.0]: /${version}/reference/operator/aggregation/abs -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/ceil -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/exp -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/floor -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/indexStats -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/ln -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/log -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/log10 -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/lookup -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/pow -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/sample -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/slice -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/sqrt -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/filter -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/reference/operator/aggregation/trunc -> ${base}/${version}/reference/operator/aggregation -[*-v3.0]: /${version}/tutorial/manage-encryption-key -> ${base}/${version}/core/security +(v3.0-*]: /${version}/products/ops-manager -> https://docs.opsmanager.mongodb.com/current/ +(v2.6-*]: /${version}/reference/command/getoptime -> ${base}/${version}/reference/command/nav-replication/ +(v2.6-*]: /${version}/reference/command/closeAllDatabases -> ${base}/${version}/reference/command/nav-administration/ +[*-v2.6]: /${version}/reference/operator/aggregation/dateToString -> ${base}/${version}/reference/operator/aggregation/ +(v2.6-*]: /${version}/reference/method/db.addUser -> ${base}/${version}/reference/method/db.createUser/ +[*-v2.6]: /${version}/reference/log-messages -> ${base}/${version}/reference/configuration-options/ +[*-v2.6]: /${version}/reference/command/explain -> ${base}/${version}/reference/method/cursor.explain/ +[*-v2.6]: /${version}/reference/command/replSetGetConfig -> ${base}/${version}/reference/command/nav-replication/ +[*-v2.6]: /${version}/reference/method/db.collection.explain -> ${base}/${version}/reference/method/cursor.explain/ +[*-v2.6]: /${version}/reference/method/sh.removeTagRange -> ${base}/${version}/reference/method/js-sharding/ +[*-v2.6]: /${version}/reference/method/db.getLogComponents -> ${base}/${version}/reference/method/ +[*-v2.6]: /${version}/reference/method/db.setLogLevel -> ${base}/${version}/reference/method/ +[*-v2.6]: /${version}/reference/explain-results -> ${base}/${version}/reference/method/cursor.explain/ +[*-v2.6]: /${version}/reference/operator/query/eq -> ${base}/${version}/reference/operator/query/ +[*-v2.2]: /${version}/reference/command/text -> ${base}/${version}/reference/command/nav-crud/ +(v2.6-*]: /${version}/reference/command/text -> ${base}/${version}/reference/operator/query/text/ +[*-v2.6]: /${version}/reference/command/listCollections -> ${base}/${version}/reference/method/db.getCollectionNames/ +[*-v2.6]: /${version}/reference/method/db.getCollectionInfos -> ${base}/${version}/reference/method/db.getCollectionNames/ +[*-v2.6]: /${version}/administration/production-checklist -> ${base}/${version}/administration/production-notes/ +[*-v2.6]: /${version}/release-notes/3.0-changelog -> ${base}/${version}/release-notes/ +[*-v2.6]: /${version}/administration/production-checklist-development -> ${base}/${version}/administration/production-notes/ +[*-v2.6]: /${version}/administration/production-checklist-operations -> ${base}/${version}/administration/production-notes/ +(v2.6-*]: /${version}/core/import-export -> ${base}/${version}/core/backups/ +(v2.6-*]: /${version}/tutorial/backup-with-mongodump -> ${base}/${version}/tutorial/backup-and-restore-tools/ +[*-v2.6]: /${version}/tutorial/backup-and-restore-tools -> ${base}/${version}/tutorial/backup-with-mongodump/ +[*-v2.6]: /${version}/administration/analyzing-mongodb-performance -> ${base}/${version}/administration/optimization/ +raw: /master/tutorial/generate-test-data -> http://docs.mongodb.com/getting-started/shell/ +raw: /manual/tutorial/generate-test-data -> http://docs.mongodb.com/getting-started/shell/ +[v3.0]: /${version}/tutorial/generate-test-data -> ${base}/${version}http://docs.mongodb.com/getting-started/shell/ +(v2.4-*]: /${version}/reference/transparent-huge-pages -> ${base}/${version}/tutorial/transparent-huge-pages/ +[*-v2.2]: /${version}/tutorial/transparent-huge-pages -> ${base}/${version}/administration/production-notes/ +[*-v3.0]: /${version}/tutorial/perform-findAndModify-quorum-reads -> ${base}/${version}/reference/method/db.collection.findAndModify/ +(v2.2-*]: /${version}/tutorial/use-capped-collections-for-fast-writes-and-reads -> ${base}/${version}/core/crud-introduction/ +[*-v2.4]: /${version}/administration/security-auditing -> ${base}/${version}/tutorial/configure-auditing/ +[*-v2.4]: /${version}/tutorial/configure-audit-filters -> ${base}/${version}/tutorial/configure-auditing/ +[*-v2.4]: /${version}/administration/security-user-role-management -> ${base}/${version}/administration/security-access-control/ +[*-v2.6]: /${version}/core/security-concepts-access-control -> ${base}/${version}/core/security/ +[*-v2.6]: /${version}/core/security-concepts-external-env -> ${base}/${version}/core/security/ +[*-v2.6]: /${version}/core/security-concepts-network -> ${base}/${version}/core/security/ +[*-v2.6]: /${version}/tutorial/manage-users-and-roles -> ${base}/${version}/administration/security-user-role-management/ +(v2.6-*]: /${version}/tutorial/add-user-to-database -> ${base}/${version}/tutorial/manage-users-and-roles/ +(v2.6-*]: /${version}/tutorial/assign-role-to-user -> ${base}/${version}/tutorial/manage-users-and-roles/ +(v2.6-*]: /${version}/tutorial/change-user-password -> ${base}/${version}/tutorial/manage-users-and-roles/ +(v2.6-*]: /${version}/tutorial/change-user-privileges -> ${base}/${version}/tutorial/manage-users-and-roles/ +(v2.6-*]: /${version}/tutorial/define-roles -> ${base}/${version}/tutorial/manage-users-and-roles/ +(v2.6-*]: /${version}/tutorial/verify-user-privileges -> ${base}/${version}/tutorial/manage-users-and-roles/ +(v2.6-*]: /${version}/tutorial/view-roles -> ${base}/${version}/tutorial/manage-users-and-roles/ +(v2.6-*]: /${version}/reference/method/db.collection.getIndexStats -> ${base}/${version}/reference/indexes/ +(v2.6-*]: /${version}/reference/method/db.collection.indexStats -> ${base}/${version}/reference/indexes/ +(v2.6-*]: /${version}/reference/command/indexStats -> ${base}/${version}/reference/indexes/ +[*-v2.6]: /${version}/tutorial/geospatial-tutorial -> ${base}/${version}/administration/indexes-geo/ +(v3.0-*]: /${version}/reference/method/cursor.showDiskLoc -> ${base}/${version}/reference/method/cursor.showRecordId/ +[*-v2.2]: /${version}/reference/method/setVerboseShell -> ${base}/${version}/reference/method/ +(v2.6-*]: /${version}/core/storage -> ${base}/${version}/storage/ +[*-v2.6]: /${version}/storage -> ${base}/${version}/core/storage/ +[*-v2.6]: /${version}/core/mmapv1 -> ${base}/${version}/core/storage/ +[*-v2.6]: /${version}/core/wiredtiger -> ${base}/${version}/core/storage/ +[*-v2.6]: /${version}/administration/security-authentication-mechanisms -> ${base}/${version}/administration/security-access-control/ +[*-v2.6]: /${version}/administration/security-misc -> ${base}/${version}/reference/security/ +[*-v2.6]: /${version}/core/authentication-mechanisms-enterprise -> ${base}/${version}/core/authentication/ +[*-v2.6]: /${version}/core/authentication-mechanisms -> ${base}/${version}/core/authentication/ +[*-v2.6]: /${version}/core/security-built-in-roles -> ${base}/${version}/reference/built-in-roles/ +[*-v2.6]: /${version}/core/security-encryption-at-rest -> ${base}/${version}/core/security-introduction/ +[*-v2.6]: /${version}/core/security-encryption -> ${base}/${version}/core/security-introduction/ +[*-v2.6]: /${version}/core/security-hardening -> ${base}/${version}/core/security-introduction/ +[*-v2.6]: /${version}/core/security-internal-authentication -> ${base}/${version}/core/authentication/ +[*-v2.6]: /${version}/core/security-ldap -> ${base}/${version}/core/authentication/ +[*-v2.6]: /${version}/core/security-mongodb-configuration -> ${base}/${version}/core/security-network/ +[*-v2.6]: /${version}/core/security-mongodb-cr -> ${base}/${version}/core/authentication/ +[*-v2.6]: /${version}/core/security-scram-sha-1 -> ${base}/${version}/core/authentication/ +[*-v2.6]: /${version}/core/security-transport-encryption -> ${base}/${version}/core/security-introduction/ +[*-v2.6]: /${version}/core/security-user-defined-roles -> ${base}/${version}/core/authorization/ +[*-v2.6]: /${version}/core/security-users -> ${base}/${version}/core/authentication/ +[*-v2.6]: /${version}/core/security-x.509 -> ${base}/${version}/core/authentication/ +[*-v2.6]: /${version}/tutorial/upgrade-keyfile-to-x509 -> ${base}/${version}/tutorial/configure-x509-member-authentication/ +[*-v2.6]: /${version}/tutorial/enable-internal-authentication -> ${base}/${version}/tutorial/enable-authentication-in-sharded-cluster/ +(v2.6-*]: /${version}/tutorial/add-admin-user -> ${base}/${version}/tutorial/manage-users-and-roles/ +(v2.6-*]: /${version}/tutorial/add-user-administrator -> ${base}/${version}/tutorial/manage-users-and-roles/ +(v2.6-*]: /${version}/tutorial/authenticate-as-client -> ${base}/${version}/tutorial/enable-authentication/ +(v2.6-*]: /${version}/tutorial/deploy-replica-set-with-auth -> ${base}/${version}/tutorial/enable-internal-authentication/ +(v2.6-*]: /${version}/tutorial/enable-authentication-in-sharded-cluster -> ${base}/${version}/tutorial/enable-internal-authentication/ +(v2.6-*]: /${version}/tutorial/enable-authentication-without-bypass -> ${base}/${version}/tutorial/enable-authentication/ +(v2.6-*]: /${version}/tutorial/generate-key-file -> ${base}/${version}/tutorial/enable-internal-authentication/ +(v2.6-*]: /${version}/core/security-introduction -> ${base}/${version}/security/ +(v2.6-*]: /${version}/core/security -> ${base}/${version}/security/ +(v2.6-*]: /${version}/administration/security-deployment -> ${base}/${version}/administration/security-access-control/ +(v2.6-*]: /${version}/core/security-concepts-access-control -> ${base}/${version}/core/authorization/ +(v2.6-*]: /${version}/core/security-concepts-external-env -> ${base}/${version}/core/security-hardening/ +(v2.6-*]: /${version}/core/security-concepts-network -> ${base}/${version}/core/security-hardening/ +(v2.6-*]: /${version}/core/security-interface -> ${base}/${version}/core/security-mongodb-configuration/ +(v2.6-*]: /${version}/release-notes/security -> ${base}/${version}/release-notes/ +(v3.0-*]: /${version}/release-notes/3.1-dev-series-text-search-enterprise -> ${base}/${version}/tutorial/text-search-with-rlp/ +[*-v3.0]: /${version}/release-notes/3.1-dev-series-text-search-enterprise -> ${base}/${version}/reference/text-search-languages/ +[*-v3.0]: /${version}/tutorial/text-search-with-rlp -> ${base}/${version}/reference/text-search-languages/ +[*-v3.0]: /${version}/reference/operator/aggregation/abs -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/ceil -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/exp -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/floor -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/indexStats -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/ln -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/log -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/log10 -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/lookup -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/pow -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/sample -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/slice -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/sqrt -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/filter -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/reference/operator/aggregation/trunc -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.0]: /${version}/tutorial/manage-encryption-key -> ${base}/${version}/core/security/ [*-v3.0]: /${version}/release-notes/3.2-upgrade -> ${base}/${version}/release-notes/ -[*-v3.0]: /${version}/reference/command/find -> ${base}/${version}/reference/method/db.collection.find -[*-v3.0]: /${version}/reference/command/getMore -> ${base}/${version}/core/cursors/#cursor-batches -[*-v3.0]: /${version}/tutorial/rotate-encryption-key -> ${base}/${version}/core/security -[*-v3.0]: /${version}/core/document-validation -> ${base}/${version}/data-modeling -(v3.0-*]: /${version}/reference/readConcern -> ${base}/${version}/reference/read-concern -[*-v3.0]: /${version}/reference/readConcern -> ${base}/${version}/core/read-operations-introduction -[*-v3.0]: /${version}/reference/read-concern -> ${base}/${version}/core/read-operations-introduction -[*-v3.0]: /${version}/reference/program/mongodrdl -> ${base}/${version}/reference/program -[*-v3.0]: /${version}/reference/program/mongobiuser -> ${base}/${version}/reference/program -[*-v3.0]: /${version}/reference/program/mongobischema -> ${base}/${version}/reference/program -(v3.0-*]: /${version}/tutorial/deploy-config-servers -> ${base}/${version}/tutorial/deploy-shard-cluster -[*-v3.0]: /${version}/release-notes/3.2-javascript -> ${base}/${version}/release-notes -[*-v3.0]: /${version}/core/index-partial -> ${base}/${version}/core/index-sparse -[*-v3.0]: /${version}/tutorial/create-a-partial-index -> ${base}/${version}/tutorial/create-a-sparse-index -[*-v3.0]: /${version}/reference/method/cursor.comment -> ${base}/${version}/reference/operator/meta/comment -[*-v3.0]: /${version}/reference/method/cursor.maxScan -> ${base}/${version}/reference/operator/meta/maxScan -[*-v3.0]: /${version}/reference/method/cursor.returnKey -> ${base}/${version}/reference/operator/meta/returnKey -[*-v3.0]: /${version}/reference/method/cursor.tailable -> ${base}/${version}/reference/method/cursor.addOption +[*-v3.0]: /${version}/reference/command/find -> ${base}/${version}/reference/method/db.collection.find/ +[*-v3.0]: /${version}/reference/command/getMore -> ${base}/${version}/core/cursors/#cursor-batches/ +[*-v3.0]: /${version}/tutorial/rotate-encryption-key -> ${base}/${version}/core/security/ +[*-v3.0]: /${version}/core/document-validation -> ${base}/${version}/data-modeling/ +(v3.0-*]: /${version}/reference/readConcern -> ${base}/${version}/reference/read-concern/ +[*-v3.0]: /${version}/reference/readConcern -> ${base}/${version}/core/read-operations-introduction/ +[*-v3.0]: /${version}/reference/read-concern -> ${base}/${version}/core/read-operations-introduction/ +[*-v3.0]: /${version}/reference/program/mongodrdl -> ${base}/${version}/reference/program/ +[*-v3.0]: /${version}/reference/program/mongobiuser -> ${base}/${version}/reference/program/ +[*-v3.0]: /${version}/reference/program/mongobischema -> ${base}/${version}/reference/program/ +(v3.0-*]: /${version}/tutorial/deploy-config-servers -> ${base}/${version}/tutorial/deploy-shard-cluster/ +[*-v3.0]: /${version}/release-notes/3.2-javascript -> ${base}/${version}/release-notes/ +[*-v3.0]: /${version}/core/index-partial -> ${base}/${version}/core/index-sparse/ +[*-v3.0]: /${version}/tutorial/create-a-partial-index -> ${base}/${version}/tutorial/create-a-sparse-index/ +[*-v3.0]: /${version}/reference/method/cursor.comment -> ${base}/${version}/reference/operator/meta/comment/ +[*-v3.0]: /${version}/reference/method/cursor.maxScan -> ${base}/${version}/reference/operator/meta/maxScan/ +[*-v3.0]: /${version}/reference/method/cursor.returnKey -> ${base}/${version}/reference/operator/meta/returnKey/ +[*-v3.0]: /${version}/reference/method/cursor.tailable -> ${base}/${version}/reference/method/cursor.addOption/ [*-v3.0]: /${version}/reference/method/cursor.readConcern -> ${base}/${version}/reference/method/ -[*-v3.0]: /${version}/core/inmemory -> ${base}/${version}/storage -[*-v3.0]: /${version}/core/storage-engines -> ${base}/${version}/storage -[*-v3.0]: /${version}/reference/method/cursor.noCursorTimeout -> ${base}/${version}/reference/method -[*-v3.0]: /${version}/reference/method/cursor.close -> ${base}/${version}/reference/method +[*-v3.0]: /${version}/core/inmemory -> ${base}/${version}/storage/ +[*-v3.0]: /${version}/core/storage-engines -> ${base}/${version}/storage/ +[*-v3.0]: /${version}/reference/method/cursor.noCursorTimeout -> ${base}/${version}/reference/method/ +[*-v3.0]: /${version}/reference/method/cursor.close -> ${base}/${version}/reference/method/ (v3.0-*]: /${version}/reference/command/geoWalk -> ${base}/${version}/reference/command/nav-geospatial/ -(v3.0-*]: /${version}/reference/server-status -> ${base}/${version}/reference/command/serverStatus -(v3.0-*]: /${version}/faq/developers -> ${base}/${version}/faq/fundamentals -(v2.6-*]: /${version}/reference/object-id -> ${base}/${version}/reference/method/ObjectId -[*-v2.6]: /${version}/reference/method/ObjectId -> ${base}/${version}/reference/object-id -[*-v2.6]: /${version}/core/databases-and-collections -> ${base}/${version}/core/introduction -[*-v2.6]: /${version}/introduction -> ${base}/${version}/core/introduction -(v2.6-*]: /${version}/core/introduction -> ${base}/${version}/introduction -(v3.0-*]: /${version}/administration/security-access-control -> ${base}/${version}/core/authorization -(v3.0-*]: /${version}/administration/security-auditing -> ${base}/${version}/core/auditing -(v3.0-*]: /${version}/administration/security-authentication-mechanisms -> ${base}/${version}/core/authentication-mechanisms -(v3.0-*]: /${version}/administration/security-encryption -> ${base}/${version}/core/security-encryption -(v3.0-*]: /${version}/administration/security-misc -> ${base}/${version}/security -(v3.0-*]: /${version}/administration/security-network -> ${base}/${version}/core/security-network -(v3.0-*]: /${version}/administration/security-use-role-management -> ${base}/${version}/core/security-users -(v3.0-*]: /${version}/administration/security -> ${base}/${version}/security -[*-v3.0]: /${version}/tutorial/create-users -> ${base}/${version}/tutorial/manage-users-and-roles -(v2.2-*]: /${version}/core/replica-set-architecture-four-members -> ${base}/${version}/core/replica-set-architectures -(v3.0-*]: /${version}/core/indexes-introduction -> ${base}/${version}/indexes -(v3.0-*]: /${version}/core/indexes -> ${base}/${version}/indexes -(v3.0-*]: /${version}/core/index-types -> ${base}/${version}/indexes -(v3.0-*]: /${version}/administration/indexes-text -> ${base}/${version}/core/index-text -(v3.0-*]: /${version}/administration/indexes-geo -> ${base}/${version}/core/2dsphere -(v3.0-*]: /${version}/administration/indexes -> ${base}/${version}/indexes -(v3.0-*]: /${version}/administration/indexes-creation -> ${base}/${version}/indexes -(v3.0-*]: /${version}/tutorial/create-an-index -> ${base}/${version}/core/index-single -(v3.0-*]: /${version}/tutorial/create-a-compound-index -> ${base}/${version}/core/index-compound -(v3.0-*]: /${version}/tutorial/create-text-index-on-multiple-fields -> ${base}/${version}/core/index-text -(v3.0-*]: /${version}/tutorial/build-a-2dsphere-index -> ${base}/${version}/core/2dsphere -(v3.0-*]: /${version}/tutorial/create-a-hashed-index -> ${base}/${version}/core/index-hashed -(v3.0-*]: /${version}/tutorial/create-a-unique-index -> ${base}/${version}/core/index-unique -(v3.0-*]: /${version}/tutorial/create-a-partial-index -> ${base}/${version}/core/index-partial -(v3.0-*]: /${version}/tutorial/create-a-sparse-index -> ${base}/${version}/core/index-partial -(v3.0-*]: /${version}/tutorial/list-indexes -> ${base}/${version}/tutorial/manage-indexes -(v3.0-*]: /${version}/tutorial/manage-in-progress-indexing-operations -> ${base}/${version}/tutorial/manage-indexes -(v3.0-*]: /${version}/tutorial/modify-an-index -> ${base}/${version}/tutorial/manage-indexes -(v3.0-*]: /${version}/tutorial/rebuild-indexes -> ${base}/${version}/tutorial/manage-indexes -(v3.0-*]: /${version}/tutorial/remove-indexes -> ${base}/${version}/tutorial/manage-indexes -(v3.0-*]: /${version}/tutorial/build-indexes-in-the-background -> ${base}/${version}/core/index-creation -(v3.0-*]: /${version}/administration/indexes-management -> ${base}/${version}/tutorial/manage-indexes -(v3.0-*]: /${version}/tutorial/roll-back-to-v1.8-index -> ${base}/${version}/indexes -(v3.0-*]: /${version}/core/crud-introduction -> ${base}/${version}/crud -(v3.0-*]: /${version}/core/read-operations -> ${base}/${version}/tutorial/query-documents -(v3.0-*]: /${version}/core/read-operations-introduction -> ${base}/${version}/tutorial/query-documents -(v3.0-*]: /${version}/core/write-operations-introduction -> ${base}/${version}/crud -(v3.0-*]: /${version}/tutorial/limit-number-of-elements-in-updated-array -> ${base}/${version}/reference/operator/update/push -(v3.0-*]: /${version}/tutorial/modify-documents -> ${base}/${version}/tutorial/update-documents -[*-v3.0]: /${version}/tutorial/update-documents -> ${base}/${version}/tutorial/modify-documents -(v3.0-*]: /${version}/core/cursors -> ${base}/${version}/tutorial/iterate-a-cursor -(v3.0-*]: /${version}/reference/crud -> ${base}/${version}/crud -(v3.0-*]: /${version}/applications/crud -> ${base}/${version}/crud -[*-v3.0]: /${version}/tutorial/query-for-null-fields -> ${base}/${version}/tutorial/update-documents -(v3.0-*]: /${version}/tutorial/create-an-auto-incrementing-field -> ${base}/${version}/crud -(v2.6-*]: /${version}/tutorial/create-tailable-cursor -> ${base}/${version}/core/tailable-cursors -[*-v2.6]: /${version}/core/tailable-cursors -> ${base}/${version}/tutorial/create-tailable-cursor -(v3.0-*]: /${version}/tutorial/update-if-current -> ${base}/${version}/crud -(v3.0-*]: /${version}/core/replication-introduction -> ${base}/${version}/replication -(v3.0-*]: /${version}/core/replication -> ${base}/${version}/replication -[*-v2.6]: /${version}/tutorial/install-mongodb-on-amazon -> ${base}/${version}/installation -[*-v2.6]: /${version}/tutorial/install-mongodb-on-suse -> ${base}/${version}/installation -[v3.0]: /${version}/tutorial/change-user-password -> ${base}/${version}/tutorial/change-user-password -[*-v2.6]: /${version}/release-notes/3.0 -> ${base}/${version}/release-notes -[*-v2.6]: /${version}/release-notes/3.0-upgrade -> ${base}/${version}/release-notes -[*-v2.6]: /${version}/release-notes/3.0-downgrade -> ${base}/${version}/release-notes -[*-v2.6]: /${version}/release-notes/3.0-compatibility -> ${base}/${version}/release-notes -[*-v2.6]: /${version}/release-notes/3.0-general-improvements -> ${base}/${version}/release-notes -raw: /master/release-notes/3.0-general-improvements -> ${base}/release-notes/3.0 -(v2.6-*]: /${version}/release-notes/3.0-general-improvements -> ${base}/${version}/release-notes/3.0 -[*-v2.6]: /${version}/release-notes/3.0-changes -> ${base}/${version}/release-notes -[*-v2.6]: /${version}/release-notes/3.0-scram -> ${base}/${version}/release-notes -[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-red-hat -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-red-hat-or-centos -(v2.4-*]: /${version}/tutorial/install-mongodb-enterprise-on-red-hat-or-centos -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-red-hat -(v2.6-*]: /${version}/release-notes/3.1-dev-series-compatibility -> ${base}/${version}/release-notes/3.2-compatibility -(v2.6-*]: /${version}/release-notes/3.1-dev-series-configure-encryption -> ${base}/${version}/release-notes/3.2-configure-encryption -(v2.6-*]: /${version}/release-notes/3.1-dev-series-reference -> ${base}/${version}/release-notes/3.2-reference -(v2.6-*]: /${version}/release-notes/3.1-dev-series-text-search-enterprise -> ${base}/${version}/release-notes/3.2-text-search-enterprise -(v2.6-*]: /${version}/release-notes/3.1-dev-series -> ${base}/${version}/release-notes/3.2 +(v3.0-*]: /${version}/reference/server-status -> ${base}/${version}/reference/command/serverStatus/ +(v3.0-*]: /${version}/faq/developers -> ${base}/${version}/faq/fundamentals/ +(v2.6-*]: /${version}/reference/object-id -> ${base}/${version}/reference/method/ObjectId/ +[*-v2.6]: /${version}/reference/method/ObjectId -> ${base}/${version}/reference/object-id/ +[*-v2.6]: /${version}/core/databases-and-collections -> ${base}/${version}/core/introduction/ +[*-v2.6]: /${version}/introduction -> ${base}/${version}/core/introduction/ +(v2.6-*]: /${version}/core/introduction -> ${base}/${version}/introduction/ +(v3.0-*]: /${version}/administration/security-access-control -> ${base}/${version}/core/authorization/ +(v3.0-*]: /${version}/administration/security-auditing -> ${base}/${version}/core/auditing/ +(v3.0-*]: /${version}/administration/security-authentication-mechanisms -> ${base}/${version}/core/authentication-mechanisms/ +(v3.0-*]: /${version}/administration/security-encryption -> ${base}/${version}/core/security-encryption/ +(v3.0-*]: /${version}/administration/security-misc -> ${base}/${version}/security/ +(v3.0-*]: /${version}/administration/security-network -> ${base}/${version}/core/security-network/ +(v3.0-*]: /${version}/administration/security-use-role-management -> ${base}/${version}/core/security-users/ +(v3.0-*]: /${version}/administration/security -> ${base}/${version}/security/ +[*-v3.0]: /${version}/tutorial/create-users -> ${base}/${version}/tutorial/manage-users-and-roles/ +(v2.2-*]: /${version}/core/replica-set-architecture-four-members -> ${base}/${version}/core/replica-set-architectures/ +(v3.0-*]: /${version}/core/indexes-introduction -> ${base}/${version}/indexes/ +(v3.0-*]: /${version}/core/indexes -> ${base}/${version}/indexes/ +(v3.0-*]: /${version}/core/index-types -> ${base}/${version}/indexes/ +(v3.0-*]: /${version}/administration/indexes-text -> ${base}/${version}/core/index-text/ +(v3.0-*]: /${version}/administration/indexes-geo -> ${base}/${version}/core/2dsphere/ +(v3.0-*]: /${version}/administration/indexes -> ${base}/${version}/indexes/ +(v3.0-*]: /${version}/administration/indexes-creation -> ${base}/${version}/indexes/ +(v3.0-*]: /${version}/tutorial/create-an-index -> ${base}/${version}/core/index-single/ +(v3.0-*]: /${version}/tutorial/create-a-compound-index -> ${base}/${version}/core/index-compound/ +(v3.0-*]: /${version}/tutorial/create-text-index-on-multiple-fields -> ${base}/${version}/core/index-text/ +(v3.0-*]: /${version}/tutorial/build-a-2dsphere-index -> ${base}/${version}/core/2dsphere/ +(v3.0-*]: /${version}/tutorial/create-a-hashed-index -> ${base}/${version}/core/index-hashed/ +(v3.0-*]: /${version}/tutorial/create-a-unique-index -> ${base}/${version}/core/index-unique/ +(v3.0-*]: /${version}/tutorial/create-a-partial-index -> ${base}/${version}/core/index-partial/ +(v3.0-*]: /${version}/tutorial/create-a-sparse-index -> ${base}/${version}/core/index-partial/ +(v3.0-*]: /${version}/tutorial/list-indexes -> ${base}/${version}/tutorial/manage-indexes/ +(v3.0-*]: /${version}/tutorial/manage-in-progress-indexing-operations -> ${base}/${version}/tutorial/manage-indexes/ +(v3.0-*]: /${version}/tutorial/modify-an-index -> ${base}/${version}/tutorial/manage-indexes/ +(v3.0-*]: /${version}/tutorial/rebuild-indexes -> ${base}/${version}/tutorial/manage-indexes/ +(v3.0-*]: /${version}/tutorial/remove-indexes -> ${base}/${version}/tutorial/manage-indexes/ +(v3.0-*]: /${version}/tutorial/build-indexes-in-the-background -> ${base}/${version}/core/index-creation/ +(v3.0-*]: /${version}/administration/indexes-management -> ${base}/${version}/tutorial/manage-indexes/ +(v3.0-*]: /${version}/tutorial/roll-back-to-v1.8-index -> ${base}/${version}/indexes/ +(v3.0-*]: /${version}/core/crud-introduction -> ${base}/${version}/crud/ +(v3.0-*]: /${version}/core/read-operations -> ${base}/${version}/tutorial/query-documents/ +(v3.0-*]: /${version}/core/read-operations-introduction -> ${base}/${version}/tutorial/query-documents/ +(v3.0-*]: /${version}/core/write-operations-introduction -> ${base}/${version}/crud/ +(v3.0-*]: /${version}/tutorial/limit-number-of-elements-in-updated-array -> ${base}/${version}/reference/operator/update/push/ +(v3.0-*]: /${version}/tutorial/modify-documents -> ${base}/${version}/tutorial/update-documents/ +[*-v3.0]: /${version}/tutorial/update-documents -> ${base}/${version}/tutorial/modify-documents/ +(v3.0-*]: /${version}/core/cursors -> ${base}/${version}/tutorial/iterate-a-cursor/ +(v3.0-*]: /${version}/reference/crud -> ${base}/${version}/crud/ +(v3.0-*]: /${version}/applications/crud -> ${base}/${version}/crud/ +[*-v3.0]: /${version}/tutorial/query-for-null-fields -> ${base}/${version}/tutorial/update-documents/ +(v3.0-*]: /${version}/tutorial/create-an-auto-incrementing-field -> ${base}/${version}/crud/ +(v2.6-*]: /${version}/tutorial/create-tailable-cursor -> ${base}/${version}/core/tailable-cursors/ +[*-v2.6]: /${version}/core/tailable-cursors -> ${base}/${version}/tutorial/create-tailable-cursor/ +(v3.0-*]: /${version}/tutorial/update-if-current -> ${base}/${version}/crud/ +(v3.0-*]: /${version}/core/replication-introduction -> ${base}/${version}/replication/ +(v3.0-*]: /${version}/core/replication -> ${base}/${version}/replication/ +[*-v2.6]: /${version}/tutorial/install-mongodb-on-amazon -> ${base}/${version}/installation/ +[*-v2.6]: /${version}/tutorial/install-mongodb-on-suse -> ${base}/${version}/installation/ +[v3.0]: /${version}/tutorial/change-user-password -> ${base}/${version}/tutorial/change-user-password/ +[*-v2.6]: /${version}/release-notes/3.0 -> ${base}/${version}/release-notes/ +[*-v2.6]: /${version}/release-notes/3.0-upgrade -> ${base}/${version}/release-notes/ +[*-v2.6]: /${version}/release-notes/3.0-downgrade -> ${base}/${version}/release-notes/ +[*-v2.6]: /${version}/release-notes/3.0-compatibility -> ${base}/${version}/release-notes/ +[*-v2.6]: /${version}/release-notes/3.0-general-improvements -> ${base}/${version}/release-notes/ +raw: /master/release-notes/3.0-general-improvements -> ${base}/release-notes/3.0/ +(v2.6-*]: /${version}/release-notes/3.0-general-improvements -> ${base}/${version}/release-notes/3.0/ +[*-v2.6]: /${version}/release-notes/3.0-changes -> ${base}/${version}/release-notes/ +[*-v2.6]: /${version}/release-notes/3.0-scram -> ${base}/${version}/release-notes/ +[*-v2.4]: /${version}/tutorial/install-mongodb-enterprise-on-red-hat -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-red-hat-or-centos/ +(v2.4-*]: /${version}/tutorial/install-mongodb-enterprise-on-red-hat-or-centos -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-red-hat/ +(v2.6-*]: /${version}/release-notes/3.1-dev-series-compatibility -> ${base}/${version}/release-notes/3.2-compatibility/ +(v2.6-*]: /${version}/release-notes/3.1-dev-series-configure-encryption -> ${base}/${version}/release-notes/3.2-configure-encryption/ +(v2.6-*]: /${version}/release-notes/3.1-dev-series-reference -> ${base}/${version}/release-notes/3.2-reference/ +(v2.6-*]: /${version}/release-notes/3.1-dev-series-text-search-enterprise -> ${base}/${version}/release-notes/3.2-text-search-enterprise/ +(v2.6-*]: /${version}/release-notes/3.1-dev-series -> ${base}/${version}/release-notes/3.2/ [*-v3.0]: /${version}/release-notes/3.2 -> ${base}/${version}/release-notes/ [*-v3.0]: /${version}/release-notes/3.2-compatibility -> ${base}/${version}/release-notes/ [*-v3.0]: /${version}/release-notes/3.2-reference -> ${base}/${version}/release-notes/ -[*-v3.0]: /${version}/reference/method/db.collection.deleteMany -> ${base}/${version}/reference/method/db.collection.remove -[*-v3.0]: /${version}/reference/method/db.collection.deleteOne -> ${base}/${version}/reference/method/db.collection.remove -[*-v3.0]: /${version}/reference/method/db.collection.findOneAndDelete -> ${base}/${version}/reference/method/db.collection.findAndModify -[*-v3.0]: /${version}/reference/method/db.collection.findOneAndReplace -> ${base}/${version}/reference/method/db.collection.findAndModify -[*-v3.0]: /${version}/reference/method/db.collection.findOneAndUpdate -> ${base}/${version}/reference/method/db.collection.findAndModify -[*-v3.0]: /${version}/reference/method/db.collection.insertMany -> ${base}/${version}/reference/method/db.collection.insert -[*-v3.0]: /${version}/reference/method/db.collection.insertOne -> ${base}/${version}/reference/method/db.collection.insert -[*-v3.0]: /${version}/reference/method/db.collection.replaceOne -> ${base}/${version}/reference/method/db.collection.update -[*-v3.0]: /${version}/reference/method/db.collection.updateMany -> ${base}/${version}/reference/method/db.collection.update -[*-v3.0]: /${version}/reference/method/db.collection.updateOne -> ${base}/${version}/reference/method/db.collection.update -[*-v3.0]: /${version}/tutorial/upgrade-config-servers-to-replica-set -> ${base}/${version}/tutorial/deploy-config-servers -[*-v3.0]: /${version}/tutorial/upgrade-config-servers-to-replica-set-downtime -> ${base}/${version}/tutorial/deploy-config-servers -[*-v3.0]: /${version}/core/read-isolation-consistency-recency -> ${base}/${version}/core/read-operations-introduction -[v3.2-*]: /${version}/core/write-operations -> ${base}/${version}/crud - -(v2.6-*]: /${version}/core/write-concern -> ${base}/${version}/reference/write-concern +[*-v3.0]: /${version}/reference/method/db.collection.deleteMany -> ${base}/${version}/reference/method/db.collection.remove/ +[*-v3.0]: /${version}/reference/method/db.collection.deleteOne -> ${base}/${version}/reference/method/db.collection.remove/ +[*-v3.0]: /${version}/reference/method/db.collection.findOneAndDelete -> ${base}/${version}/reference/method/db.collection.findAndModify/ +[*-v3.0]: /${version}/reference/method/db.collection.findOneAndReplace -> ${base}/${version}/reference/method/db.collection.findAndModify/ +[*-v3.0]: /${version}/reference/method/db.collection.findOneAndUpdate -> ${base}/${version}/reference/method/db.collection.findAndModify/ +[*-v3.0]: /${version}/reference/method/db.collection.insertMany -> ${base}/${version}/reference/method/db.collection.insert/ +[*-v3.0]: /${version}/reference/method/db.collection.insertOne -> ${base}/${version}/reference/method/db.collection.insert/ +[*-v3.0]: /${version}/reference/method/db.collection.replaceOne -> ${base}/${version}/reference/method/db.collection.update/ +[*-v3.0]: /${version}/reference/method/db.collection.updateMany -> ${base}/${version}/reference/method/db.collection.update/ +[*-v3.0]: /${version}/reference/method/db.collection.updateOne -> ${base}/${version}/reference/method/db.collection.update/ +[*-v3.0]: /${version}/tutorial/upgrade-config-servers-to-replica-set -> ${base}/${version}/tutorial/deploy-config-servers/ +[*-v3.0]: /${version}/tutorial/upgrade-config-servers-to-replica-set-downtime -> ${base}/${version}/tutorial/deploy-config-servers/ +[*-v3.0]: /${version}/core/read-isolation-consistency-recency -> ${base}/${version}/core/read-operations-introduction/ +[v3.2-*]: /${version}/core/write-operations -> ${base}/${version}/crud/ + +(v2.6-*]: /${version}/core/write-concern -> ${base}/${version}/reference/write-concern/ [*-v3.0]: /${version}/release-notes/3.2-downgrade -> ${base}/${version}/release-notes/ -(v3.0-*]: /${version}/administration/backup -> ${base}/${version}/core/backups -[*-v3.0]: /${version}/administration/configuration-and-maintenance -> ${base}/${version}/administration/maintenance -(v3.0-*]: /${version}/administration/data-management -> ${base}/${version}/data-center-awareness -(v3.0-*]: /${version}/administration/maintenance -> ${base}/${version}/administration/configuration-and-maintenance -(v3.0-*]: /${version}/administration/optimization -> ${base}/${version}/administration/analyzing-mongodb-performance -(v3.0-*]: /${version}/administration/production-checklist -> ${base}/${version}/administration/production-checklist-operations -(v3.0-*]: /${version}/administration/strategy -> ${base}/${version}/administration -(v3.0-*]: /${version}/administration/tutorials -> ${base}/${version}/administration -(v3.0-*]: /${version}/applications/design-notes -> ${base}/${version}/administration/production-checklist-development -(v3.0-*]: /${version}/core/administration -> ${base}/${version}/administration -(v3.0-*]: /${version}/reference/administration -> ${base}/${version}/administration -(v3.0-*]: /${version}/tutorial/admin-manage-journaling -> ${base}/${version}/tutorial/manage-journaling -(v3.0-*]: /${version}/tutorial/backup-small-sharded-cluster-with-mongodump -> ${base}/${version}/tutorial/backup-sharded-clusters -(v3.0-*]: /${version}/tutorial/restore-single-shard -> ${base}/${version}/tutorial/restore-sharded-cluster -[*-v3.0]: /${version}/tutorial/sharding-segmenting-data-by-location -> ${base}/${version}/core/tag-aware-sharding -[v3.6-*]: /${version}/reference/method/db.upgradeCheckAllDBs -> ${base}/${version}/release-notes/2.6-upgrade -[v3.6-*]: /${version}/reference/method/db.upgradeCheck -> ${base}/${version}/release-notes/2.6-upgrade -[v3.6-*]: /${version}/reference/operator/update/pushAll -> ${base}/${version}/reference/operator/update/push -[*-v3.4]: /${version}/reference/operator/query/expr -> ${base}/${version}/reference/operator/query -[*-v3.4]: /${version}/release-notes/3.6-compatibility -> ${base}/${version}/release-notes -[*-v3.4]: /${version}/release-notes/3.6 -> ${base}/${version}/release-notes -[*-v3.2]: /${version}/reference/operator/aggregation/arrayToObject -> ${base}/${version}/reference/operator/aggregation -[*-v3.2]: /${version}/reference/operator/aggregation/objectToArray -> ${base}/${version}/reference/operator/aggregation -[*-v3.4]: /${version}/reference/operator/aggregation/mergeObjects -> ${base}/${version}/reference/operator/aggregation -[*-v3.4]: /${version}/reference/operator/aggregation/dateFromString -> ${base}/${version}/reference/operator/aggregation -[*-v3.4]: /${version}/reference/operator/aggregation/dateFromParts -> ${base}/${version}/reference/operator/aggregation -[*-v3.4]: /${version}/reference/operator/aggregation/dateToParts -> ${base}/${version}/reference/operator/aggregation -[*-v3.4]: /${version}/reference/operator/update/positional-filtered -> ${base}/${version}/reference/operator/update -[*-v3.4]: /${version}/reference/operator/update/positional-all -> ${base}/${version}/reference/operator/update -[*-v3.4]: /${version}/reference/method/db.aggregate -> ${base}/${version}/reference/method/db.collection.aggregate -[*-v3.4]: /${version}/reference/operator/query/jsonSchema -> ${base}/${version}/core/document-validation -[*-v3.4]: /${version}/reference/command/replSetResizeOplog -> ${base}/${version}/reference/command -[*-v3.0]: /${version}/reference/method/db.collection.createIndexes -> ${base}/${version}/reference/method/db.collection.createIndex -[v3.6-*]: /${version}/reference/program/mongooplog -> ${base}/${version}/reference/program -[v3.6-*]: /${version}/core/document-validation -> ${base}/${version}/core/schema-validation -[*-v3.4]: /${version}/core/schema-validation -> ${base}/${version}/core/document-validation -[v3.6-*]: /${version}/reference/method/sh.getBalancerLockDetails -> ${base}/${version}/reference/method/js-sharding -[*-v3.2]: /${version}/reference/method/sh.disableAutoSplit -> ${base}/${version}/reference/program/mongos -[*-v3.2]: /${version}/reference/method/sh.enableAutoSplit -> ${base}/${version}/reference/program/mongos -[v3.0-*]: /${version}/core/security-scram-sha-1 -> ${base}/${version}/core/security-scram -[*-v2.6]: /${version}/core/security-scram -> ${base}/${version}/core/security-scram-sha-1 - -[*-v3.2]: /${version}/reference/command/fsyncUnlock -> ${base}/${version}/reference/method/db.fsyncUnlock - -[*-v3.4]: /${version}/changeStreams -> ${base}/${version}/replication -[*-v3.4]: /${version}/administration/change-streams-production-recommendations -> ${base}/${version}/replication -[*-v3.4]: /${version}/reference/change-events -> ${base}/${version}/replication -[*-v3.2]: /${version}/tutorial/convert-shard-standalone-to-shard-replica-set -> ${base}/${version}/tutorial/convert-standalone-to-replica-set - -[v3.0-v3.2]: /${version}/reference/versioning -> ${base}/${version}/release-notes - -[v3.6-*]: /${version}/reference/operator/aggregation-arithmetic -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-array -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-boolean -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-comparison -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-conditional -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-data-type -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-date -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-group -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-literal -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-projection -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-set -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-string -> ${base}/${version}/reference/operator/aggregation -[v3.6-*]: /${version}/reference/operator/aggregation-text-search -> ${base}/${version}/reference/operator/aggregation - - -[v3.6-*]: /${version}/tutorial/upgrade-config-servers-to-replica-set -> ${base}/v3.2/tutorial/upgrade-config-servers-to-replica-set -[v3.6-*]: /${version}/tutorial/upgrade-config-servers-to-replica-set-downtime -> ${base}/v3.2/tutorial/upgrade-config-servers-to-replica-set-downtime -[v3.4-*]: /${version}/tutorial/change-config-server-wiredtiger -> ${base}/v3.2/tutorial/change-config-server-wiredtiger - -[v3.6-*]: /${version}/tutorial/change-streams-example -> ${base}/${version}/changeStreams - -[v3.6-*]: /${version}/tutorial/deploy-sharded-cluster-hashed-sharding -> ${base}/${version}/tutorial/deploy-shard-cluster -[v3.6-*]: /${version}/tutorial/deploy-sharded-cluster-ranged-sharding -> ${base}/${version}/tutorial/deploy-shard-cluster - -[v3.6-*]: /${version}/core/data-modeling-json-schema -> ${base}/${version}/core/schema-validation -[v3.6-*]: /${version}/core/distributed-write-operations -> ${base}/${version}/core/distributed-queries -[v3.6-*]: /${version}/reference/operator/meta/snapshot -> ${base}/${version}/reference/operator/meta -[v3.6-*]: /${version}/reference/operator/update-isolation -> ${base}/${version}/reference/operator/update -[v3.6-*]: /${version}/reference/operator/update/isolated -> ${base}/${version}/reference/operator/update +(v3.0-*]: /${version}/administration/backup -> ${base}/${version}/core/backups/ +[*-v3.0]: /${version}/administration/configuration-and-maintenance -> ${base}/${version}/administration/maintenance/ +(v3.0-*]: /${version}/administration/data-management -> ${base}/${version}/data-center-awareness/ +(v3.0-*]: /${version}/administration/maintenance -> ${base}/${version}/administration/configuration-and-maintenance/ +(v3.0-*]: /${version}/administration/optimization -> ${base}/${version}/administration/analyzing-mongodb-performance/ +(v3.0-*]: /${version}/administration/production-checklist -> ${base}/${version}/administration/production-checklist-operations/ +(v3.0-*]: /${version}/administration/strategy -> ${base}/${version}/administration/ +(v3.0-*]: /${version}/administration/tutorials -> ${base}/${version}/administration/ +(v3.0-*]: /${version}/applications/design-notes -> ${base}/${version}/administration/production-checklist-development/ +(v3.0-*]: /${version}/core/administration -> ${base}/${version}/administration/ +(v3.0-*]: /${version}/reference/administration -> ${base}/${version}/administration/ +(v3.0-*]: /${version}/tutorial/admin-manage-journaling -> ${base}/${version}/tutorial/manage-journaling/ +(v3.0-*]: /${version}/tutorial/backup-small-sharded-cluster-with-mongodump -> ${base}/${version}/tutorial/backup-sharded-clusters/ +(v3.0-*]: /${version}/tutorial/restore-single-shard -> ${base}/${version}/tutorial/restore-sharded-cluster/ +[*-v3.0]: /${version}/tutorial/sharding-segmenting-data-by-location -> ${base}/${version}/core/tag-aware-sharding/ +[v3.6-*]: /${version}/reference/method/db.upgradeCheckAllDBs -> ${base}/${version}/release-notes/2.6-upgrade/ +[v3.6-*]: /${version}/reference/method/db.upgradeCheck -> ${base}/${version}/release-notes/2.6-upgrade/ +[v3.6-*]: /${version}/reference/operator/update/pushAll -> ${base}/${version}/reference/operator/update/push/ +[*-v3.4]: /${version}/reference/operator/query/expr -> ${base}/${version}/reference/operator/query/ +[*-v3.4]: /${version}/release-notes/3.6-compatibility -> ${base}/${version}/release-notes/ +[*-v3.4]: /${version}/release-notes/3.6 -> ${base}/${version}/release-notes/ +[*-v3.2]: /${version}/reference/operator/aggregation/arrayToObject -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.2]: /${version}/reference/operator/aggregation/objectToArray -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.4]: /${version}/reference/operator/aggregation/mergeObjects -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.4]: /${version}/reference/operator/aggregation/dateFromString -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.4]: /${version}/reference/operator/aggregation/dateFromParts -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.4]: /${version}/reference/operator/aggregation/dateToParts -> ${base}/${version}/reference/operator/aggregation/ +[*-v3.4]: /${version}/reference/operator/update/positional-filtered -> ${base}/${version}/reference/operator/update/ +[*-v3.4]: /${version}/reference/operator/update/positional-all -> ${base}/${version}/reference/operator/update/ +[*-v3.4]: /${version}/reference/method/db.aggregate -> ${base}/${version}/reference/method/db.collection.aggregate/ +[*-v3.4]: /${version}/reference/operator/query/jsonSchema -> ${base}/${version}/core/document-validation/ +[*-v3.4]: /${version}/reference/command/replSetResizeOplog -> ${base}/${version}/reference/command/ +[*-v3.0]: /${version}/reference/method/db.collection.createIndexes -> ${base}/${version}/reference/method/db.collection.createIndex/ +[v3.6-*]: /${version}/reference/program/mongooplog -> ${base}/${version}/reference/program/ +[v3.6-*]: /${version}/core/document-validation -> ${base}/${version}/core/schema-validation/ +[*-v3.4]: /${version}/core/schema-validation -> ${base}/${version}/core/document-validation/ +[v3.6-*]: /${version}/reference/method/sh.getBalancerLockDetails -> ${base}/${version}/reference/method/js-sharding/ +[*-v3.2]: /${version}/reference/method/sh.disableAutoSplit -> ${base}/${version}/reference/program/mongos/ +[*-v3.2]: /${version}/reference/method/sh.enableAutoSplit -> ${base}/${version}/reference/program/mongos/ +[v3.0-*]: /${version}/core/security-scram-sha-1 -> ${base}/${version}/core/security-scram/ +[*-v2.6]: /${version}/core/security-scram -> ${base}/${version}/core/security-scram-sha-1/ + +[*-v3.2]: /${version}/reference/command/fsyncUnlock -> ${base}/${version}/reference/method/db.fsyncUnlock/ + +[*-v3.4]: /${version}/changeStreams -> ${base}/${version}/replication/ +[*-v3.4]: /${version}/administration/change-streams-production-recommendations -> ${base}/${version}/replication/ +[*-v3.4]: /${version}/reference/change-events -> ${base}/${version}/replication/ +[*-v3.2]: /${version}/tutorial/convert-shard-standalone-to-shard-replica-set -> ${base}/${version}/tutorial/convert-standalone-to-replica-set/ + +[v3.0-v3.2]: /${version}/reference/versioning -> ${base}/${version}/release-notes/ + +[v3.6-*]: /${version}/reference/operator/aggregation-arithmetic -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-array -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-boolean -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-comparison -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-conditional -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-data-type -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-date -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-group -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-literal -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-projection -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-set -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-string -> ${base}/${version}/reference/operator/aggregation/ +[v3.6-*]: /${version}/reference/operator/aggregation-text-search -> ${base}/${version}/reference/operator/aggregation/ + + +[v3.6-*]: /${version}/tutorial/upgrade-config-servers-to-replica-set -> ${base}/v3.2/tutorial/upgrade-config-servers-to-replica-set/ +[v3.6-*]: /${version}/tutorial/upgrade-config-servers-to-replica-set-downtime -> ${base}/v3.2/tutorial/upgrade-config-servers-to-replica-set-downtime/ +[v3.4-*]: /${version}/tutorial/change-config-server-wiredtiger -> ${base}/v3.2/tutorial/change-config-server-wiredtiger/ + +[v3.6-*]: /${version}/tutorial/change-streams-example -> ${base}/${version}/changeStreams/ + +[v3.6-*]: /${version}/tutorial/deploy-sharded-cluster-hashed-sharding -> ${base}/${version}/tutorial/deploy-shard-cluster/ +[v3.6-*]: /${version}/tutorial/deploy-sharded-cluster-ranged-sharding -> ${base}/${version}/tutorial/deploy-shard-cluster/ + +[v3.6-*]: /${version}/core/data-modeling-json-schema -> ${base}/${version}/core/schema-validation/ +[v3.6-*]: /${version}/core/distributed-write-operations -> ${base}/${version}/core/distributed-queries/ +[v3.6-*]: /${version}/reference/operator/meta/snapshot -> ${base}/${version}/reference/operator/meta/ +[v3.6-*]: /${version}/reference/operator/update-isolation -> ${base}/${version}/reference/operator/update/ +[v3.6-*]: /${version}/reference/operator/update/isolated -> ${base}/${version}/reference/operator/update/ [v3.6-*]: /${version}/reference/method/cursor.snapshot -> ${base}/${version}/reference/method/ -[v3.6-*]: /${version}/administration/replica-sets -> ${base}/${version}/replication +[v3.6-*]: /${version}/administration/replica-sets -> ${base}/${version}/replication/ # Redirects for 4.0 -[v4.0-*]: /${version}/upcoming -> ${base}/${version}/core/transactions +[v4.0-*]: /${version}/upcoming -> ${base}/${version}/core/transactions/ # Redirects for 4.0 and greater -[v4.0-*]: /${version}/core/security-mongodb-cr -> ${base}/${version}/core/security-scram -[v4.0-*]: /${version}/reference/command/authSchemaUpgrade -> ${base}/${version}/core/security-scram -[v4.0-*]: /${version}/reference/command/copydbgetnonce -> ${base}/${version}/reference/command/copydb -[v4.0-*]: /${version}/reference/command/resync -> ${base}/${version}/core/master-slave -[v4.0-*]: /${version}/reference/program/mongoperf -> ${base}/${version}/reference/program -[v4.0-*]: /${version}/tutorial/perform-two-phase-commits -> ${base}/${version}/core/transactions -[v4.0-*]: /${version}/tutorial/install-mongodb-on-linux -> ${base}/${version}/administration/install-on-linux +[v4.0-*]: /${version}/core/security-mongodb-cr -> ${base}/${version}/core/security-scram/ +[v4.0-*]: /${version}/reference/command/authSchemaUpgrade -> ${base}/${version}/core/security-scram/ +[v4.0-*]: /${version}/reference/command/copydbgetnonce -> ${base}/${version}/reference/command/copydb/ +[v4.0-*]: /${version}/reference/command/resync -> ${base}/${version}/core/master-slave/ +[v4.0-*]: /${version}/reference/program/mongoperf -> ${base}/${version}/reference/program/ +[v4.0-*]: /${version}/tutorial/perform-two-phase-commits -> ${base}/${version}/core/transactions/ +[v4.0-*]: /${version}/tutorial/install-mongodb-on-linux -> ${base}/${version}/administration/install-on-linux/ # Redirects for 4.2 and greater -[v4.2-*]: /${version}/reference/command/copydb -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-copydb-and-clone-commands -[v4.2-*]: /${version}/reference/command/clone -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-copydb-and-clone-commands -[v4.2-*]: /${version}/reference/command/eval -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-eval-command -[v4.2-*]: /${version}/reference/command/parallelCollectionScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-parallelcollectionscan-command -[v4.2-*]: /${version}/reference/command/group -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-group-command -[v4.2-*]: /${version}/reference/method/db.collection.group -> ${base}/${version}/4.2-compatibility/#remove-support-for-the-group-command -[v4.2-*]: /${version}/reference/operator/meta/maxScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-maxscan -[v4.2-*]: /${version}/reference/method/cursor.maxScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-maxscan -[v4.2-*]: /${version}/reference/command/geoNear -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-geonear-command -[v4.2-*]: /${version}/reference/command/repairDatabase -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-repairdatabase-command -[v4.2-*]: /${version}/reference/method/db.collection.repairDatabase -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-repairdatabase-command -[v4.2-*]: /${version}/core/mmapv1 -> ${base}/${version}/storage -[v4.2-*]: /${version}/core/master-slave -> ${base}/${version}/replication - -[v4.2-*]: /${version}/reference/command/touch -> ${base}/${version}/release-notes/4.2-compatibility/#mmapv1-specific-command - -# Redirects for 4.0 or earlier (i.e. before 4.2), stopping a v3.0 since otherwise to help slow the growth in the number of our redirects - -[v3.0-v4.0]: /${version}/release-notes/4.2 -> ${base}/${version}/release-notes -[v3.0-v4.0]: /${version}/release-notes/4.2-compatibility -> ${base}/${version}/release-notes -[v3.0-v4.0]: /${version}/reference/method/passwordPrompt -> ${base}/${version}/reference/method/js-user-management -[v3.0-v4.0]: /${version}/reference/expansion-directives -> ${base}/${version}/reference/configuration-options -[v3.0-v4.0]: /${version}/reference/operator/aggregation/planCacheStats -> ${base}/${version}/reference/command/planCacheListPlans -[v3.0-v4.0]: /${version}/tutorial/convert-command-line-options-to-yaml -> ${base}/${version}/reference/configuration-file-settings-command-line-options-mapping -[v3.0-v4.0]: /${version}/reference/method/isInteractive -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/Bulk.find.hint -> ${base}/${version}/reference/method/Bulk.find - +[v4.2-*]: /${version}/reference/command/copydb -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-copydb-and-clone-commands/ +[v4.2-*]: /${version}/reference/command/clone -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-copydb-and-clone-commands/ +[v4.2-*]: /${version}/reference/command/eval -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-eval-command/ +[v4.2-*]: /${version}/reference/command/parallelCollectionScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-parallelcollectionscan-command/ +[v4.2-*]: /${version}/reference/command/group -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-group-command/ +[v4.2-*]: /${version}/reference/method/db.collection.group -> ${base}/${version}/4.2-compatibility/#remove-support-for-the-group-command/ +[v4.2-*]: /${version}/reference/operator/meta/maxScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-maxscan/ +[v4.2-*]: /${version}/reference/method/cursor.maxScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-maxscan/ +[v4.2-*]: /${version}/reference/command/geoNear -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-geonear-command/ +[v4.2-*]: /${version}/reference/command/repairDatabase -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-repairdatabase-command/ +[v4.2-*]: /${version}/reference/method/db.collection.repairDatabase -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-repairdatabase-command/ +[v4.2-*]: /${version}/core/mmapv1 -> ${base}/${version}/storage/ +[v4.2-*]: /${version}/core/master-slave -> ${base}/${version}/replication/ + +[v4.2-*]: /${version}/reference/command/touch -> ${base}/${version}/release-notes/4.2-compatibility/#mmapv1-specific-command/ + +# Redirects for 4.0 or earlier (i.e. before 4.2), stopping a v3.0 since otherwise to help slow the growth in the number of our redirects + +[v3.0-v4.0]: /${version}/release-notes/4.2 -> ${base}/${version}/release-notes/ +[v3.0-v4.0]: /${version}/release-notes/4.2-compatibility -> ${base}/${version}/release-notes/ +[v3.0-v4.0]: /${version}/reference/method/passwordPrompt -> ${base}/${version}/reference/method/js-user-management/ +[v3.0-v4.0]: /${version}/reference/expansion-directives -> ${base}/${version}/reference/configuration-options/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/planCacheStats -> ${base}/${version}/reference/command/planCacheListPlans/ +[v3.0-v4.0]: /${version}/tutorial/convert-command-line-options-to-yaml -> ${base}/${version}/reference/configuration-file-settings-command-line-options-mapping/ +[v3.0-v4.0]: /${version}/reference/method/isInteractive -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/Bulk.find.hint -> ${base}/${version}/reference/method/Bulk.find/ # Redirects for trig functions DOCS-12338 -[*-v4.0]: /${version}/reference/operator/aggregation/sin -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/cos -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/tan -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/asin -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/acos -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/atan -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/atan2 -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/asinh -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/acosh -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/atanh -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/sinh -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/cosh -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/tanh -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/degreesToRadians -> ${base}/${version}/reference/operator/aggregation -[*-v4.0]: /${version}/reference/operator/aggregation/radiansToDegrees -> ${base}/${version}/reference/operator/aggregation - +[*-v4.0]: /${version}/reference/operator/aggregation/sin -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/cos -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/tan -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/asin -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/acos -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/atan -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/atan2 -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/asinh -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/acosh -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/atanh -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/sinh -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/cosh -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/tanh -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/degreesToRadians -> ${base}/${version}/reference/operator/aggregation/ +[*-v4.0]: /${version}/reference/operator/aggregation/radiansToDegrees -> ${base}/${version}/reference/operator/aggregation/ # Redirects for 3.6 or earlier (i.e. before 4.0) -[v3.0-v3.6]: /${version}/appendix/security -> ${base}/${version}/security -[v3.0-v3.6]: /${version}/appendix/security/appendixA-openssl-ca -> ${base}/${version}/security -[v3.0-v3.6]: /${version}/appendix/security/appendixB-openssl-server -> ${base}/${version}/security -[v3.0-v3.6]: /${version}/appendix/security/appendixC-openssl-client -> ${base}/${version}/security -[v3.0-v3.6]: /${version}/tutorial/install-mongodb-enterprise-with-docker -> ${base}/${version}/administration/install-enterprise - -[*-v3.6]: /${version}/release-notes/4.0 -> ${base}/${version}/release-notes -[*-v3.6]: /${version}/release-notes/4.0-compatibility -> ${base}/${version}/release-notes -[*-v3.6]: /${version}/release-notes/4.0-upgrade-standalone -> ${base}/${version}/release-notes -[*-v3.6]: /${version}/release-notes/4.0-upgrade-replica-set -> ${base}/${version}/release-notes -[*-v3.6]: /${version}/release-notes/4.0-upgrade-sharded-cluster -> ${base}/${version}/release-notes -[*-v3.6]: /${version}/release-notes/4.0-downgrade-standalone -> ${base}/${version}/release-notes -[*-v3.6]: /${version}/release-notes/4.0-downgrade-replica-set -> ${base}/${version}/release-notes -[*-v3.6]: /${version}/release-notes/4.0-downgrade-sharded-cluster -> ${base}/${version}/release-notes -[*-v3.6]: /${version}/reference/configuration-file-settings-command-line-options-mapping -> ${base}/${version}/reference/configuration-options -[v3.0-v3.6]: /${version}/administration/upgrade-community-to-enterprise -> ${base}/${version}/installation -[v3.0-v3.6]: /${version}/tutorial/upgrade-to-enterprise-standalone -> ${base}/${version}/installation -[v3.0-v3.6]: /${version}/tutorial/upgrade-to-enterprise-replica-set -> ${base}/${version}/installation -[v3.0-v3.6]: /${version}/tutorial/upgrade-to-enterprise-sharded-cluster -> ${base}/${version}/installation - -[*-v3.6]: /${version}/reference/method/db.collection.countDocuments -> ${base}/${version}/reference/operator/aggregation/count -[*-v3.6]: /${version}/reference/method/db.collection.estimatedDocumentCount -> ${base}/${version}/reference/method/db.collection.count -[*-v3.6]: /${version}/reference/method/db.watch -> ${base}/${version}/changeStreams -[*-v3.6]: /${version}/reference/method/Mongo.watch -> ${base}/${version}/changeStreams - -[*-v3.4]: /${version}/reference/read-concern-linearizable -> ${base}/${version}/reference/read-concern -[*-v3.4]: /${version}/reference/read-concern-local -> ${base}/${version}/reference/read-concern -[*-v3.4]: /${version}/reference/read-concern-available -> ${base}/${version}/reference/read-concern -[*-v3.4]: /${version}/reference/read-concern-majority -> ${base}/${version}/reference/read-concern +[v3.0-v3.6]: /${version}/appendix/security -> ${base}/${version}/security/ +[v3.0-v3.6]: /${version}/appendix/security/appendixA-openssl-ca -> ${base}/${version}/security/ +[v3.0-v3.6]: /${version}/appendix/security/appendixB-openssl-server -> ${base}/${version}/security/ +[v3.0-v3.6]: /${version}/appendix/security/appendixC-openssl-client -> ${base}/${version}/security/ +[v3.0-v3.6]: /${version}/tutorial/install-mongodb-enterprise-with-docker -> ${base}/${version}/administration/install-enterprise/ + +[*-v3.6]: /${version}/release-notes/4.0 -> ${base}/${version}/release-notes/ +[*-v3.6]: /${version}/release-notes/4.0-compatibility -> ${base}/${version}/release-notes/ +[*-v3.6]: /${version}/release-notes/4.0-upgrade-standalone -> ${base}/${version}/release-notes/ +[*-v3.6]: /${version}/release-notes/4.0-upgrade-replica-set -> ${base}/${version}/release-notes/ +[*-v3.6]: /${version}/release-notes/4.0-upgrade-sharded-cluster -> ${base}/${version}/release-notes/ +[*-v3.6]: /${version}/release-notes/4.0-downgrade-standalone -> ${base}/${version}/release-notes/ +[*-v3.6]: /${version}/release-notes/4.0-downgrade-replica-set -> ${base}/${version}/release-notes/ +[*-v3.6]: /${version}/release-notes/4.0-downgrade-sharded-cluster -> ${base}/${version}/release-notes/ +[*-v3.6]: /${version}/reference/configuration-file-settings-command-line-options-mapping -> ${base}/${version}/reference/configuration-options/ +[v3.0-v3.6]: /${version}/administration/upgrade-community-to-enterprise -> ${base}/${version}/installation/ +[v3.0-v3.6]: /${version}/tutorial/upgrade-to-enterprise-standalone -> ${base}/${version}/installation/ +[v3.0-v3.6]: /${version}/tutorial/upgrade-to-enterprise-replica-set -> ${base}/${version}/installation/ +[v3.0-v3.6]: /${version}/tutorial/upgrade-to-enterprise-sharded-cluster -> ${base}/${version}/installation/ + +[*-v3.6]: /${version}/reference/method/db.collection.countDocuments -> ${base}/${version}/reference/operator/aggregation/count/ +[*-v3.6]: /${version}/reference/method/db.collection.estimatedDocumentCount -> ${base}/${version}/reference/method/db.collection.count/ +[*-v3.6]: /${version}/reference/method/db.watch -> ${base}/${version}/changeStreams/ +[*-v3.6]: /${version}/reference/method/Mongo.watch -> ${base}/${version}/changeStreams/ + +[*-v3.4]: /${version}/reference/read-concern-linearizable -> ${base}/${version}/reference/read-concern/ +[*-v3.4]: /${version}/reference/read-concern-local -> ${base}/${version}/reference/read-concern/ +[*-v3.4]: /${version}/reference/read-concern-available -> ${base}/${version}/reference/read-concern/ +[*-v3.4]: /${version}/reference/read-concern-majority -> ${base}/${version}/reference/read-concern/ [v3.2-v3.4]: /${version}/tutorial/deploy-shard-cluster/ -> ${base}/${version}/tutorial/deploy-sharded-cluster-ranged-sharding/ -[*-v3.6]: /${version}/reference/read-concern-snapshot -> ${base}/${version}/reference/read-concern -[*-v3.6]: /${version}/core/transactions -> ${base}/${version}/core/write-operations-atomicity -[*-v3.6]: /${version}/core/transactions-operation -> ${base}/${version}/core/write-operations-atomicity -[*-v3.6]: /${version}/core/transactions-operations -> ${base}/${version}/core/write-operations-atomicity -[*-v3.6]: /${version}/core/transactions-production-consideration -> ${base}/${version}/core/write-operations-atomicity -[*-v3.6]: /${version}/reference/method/Session.abortTransaction -> ${base}/${version}/core/write-operations-atomicity -[*-v3.6]: /${version}/reference/method/Session.commitTransaction -> ${base}/${version}/core/write-operations-atomicity -[*-v3.6]: /${version}/reference/method/Session.startTransaction -> ${base}/${version}/core/write-operations-atomicity -[*-v3.6]: /${version}/reference/operator/aggregation/ltrim -> ${base}/${version}/meta/aggregation-quick-reference/#string-expression-operators -[*-v3.6]: /${version}/reference/operator/aggregation/rtrim -> ${base}/${version}/meta/aggregation-quick-reference/#string-expression-operators -[*-v3.6]: /${version}/reference/operator/aggregation/trim -> ${base}/${version}/meta/aggregation-quick-reference/#string-expression-operators -[*-v3.6]: /${version}/reference/command/getFreeMonitoringStatus -> ${base}/${version}/administration/monitoring -[*-v3.6]: /${version}/reference/command/nav-free-monitoring -> ${base}/${version}/administration/monitoring -[*-v3.6]: /${version}/reference/command/setFreeMonitoring -> ${base}/${version}/administration/monitoring -[*-v3.6]: /${version}/reference/method/db.disableFreeMonitoring -> ${base}/${version}/administration/monitoring -[*-v3.6]: /${version}/reference/method/db.enableFreeMonitoring -> ${base}/${version}/administration/monitoring -[*-v3.6]: /${version}/reference/method/db.getFreeMonitoringStatus -> ${base}/${version}/administration/monitoring -[*-v3.6]: /${version}/reference/method/js-free-monitoring -> ${base}/${version}/administration/monitoring - - -[*-v3.6]: /${version}/tutorial/install-mongodb-on-windows-unattended -> ${base}/${version}/tutorial/install-mongodb-on-windows -[*-v3.6]: /${version}/tutorial/install-mongodb-enterprise-on-windows-unattended -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-windows - -[*-v3.4]: /${version}/core/causal-consistency-read-write-concerns -> ${base}/${version}/core/read-isolation-consistency-recency -[v3.6-*]: /${version}/core/security-encryption -> ${base}/${version}/security - -[*-v3.4]: /${version}/reference/operator/aggregation/currentOp -> ${base}/${version}/reference/command/currentOp +[*-v3.6]: /${version}/reference/read-concern-snapshot -> ${base}/${version}/reference/read-concern/ +[*-v3.6]: /${version}/core/transactions -> ${base}/${version}/core/write-operations-atomicity/ +[*-v3.6]: /${version}/core/transactions-operation -> ${base}/${version}/core/write-operations-atomicity/ +[*-v3.6]: /${version}/core/transactions-operations -> ${base}/${version}/core/write-operations-atomicity/ +[*-v3.6]: /${version}/core/transactions-production-consideration -> ${base}/${version}/core/write-operations-atomicity/ +[*-v3.6]: /${version}/reference/method/Session.abortTransaction -> ${base}/${version}/core/write-operations-atomicity/ +[*-v3.6]: /${version}/reference/method/Session.commitTransaction -> ${base}/${version}/core/write-operations-atomicity/ +[*-v3.6]: /${version}/reference/method/Session.startTransaction -> ${base}/${version}/core/write-operations-atomicity/ +[*-v3.6]: /${version}/reference/operator/aggregation/ltrim -> ${base}/${version}/meta/aggregation-quick-reference/#string-expression-operators/ +[*-v3.6]: /${version}/reference/operator/aggregation/rtrim -> ${base}/${version}/meta/aggregation-quick-reference/#string-expression-operators/ +[*-v3.6]: /${version}/reference/operator/aggregation/trim -> ${base}/${version}/meta/aggregation-quick-reference/#string-expression-operators/ +[*-v3.6]: /${version}/reference/command/getFreeMonitoringStatus -> ${base}/${version}/administration/monitoring/ +[*-v3.6]: /${version}/reference/command/nav-free-monitoring -> ${base}/${version}/administration/monitoring/ +[*-v3.6]: /${version}/reference/command/setFreeMonitoring -> ${base}/${version}/administration/monitoring/ +[*-v3.6]: /${version}/reference/method/db.disableFreeMonitoring -> ${base}/${version}/administration/monitoring/ +[*-v3.6]: /${version}/reference/method/db.enableFreeMonitoring -> ${base}/${version}/administration/monitoring/ +[*-v3.6]: /${version}/reference/method/db.getFreeMonitoringStatus -> ${base}/${version}/administration/monitoring/ +[*-v3.6]: /${version}/reference/method/js-free-monitoring -> ${base}/${version}/administration/monitoring/ + + +[*-v3.6]: /${version}/tutorial/install-mongodb-on-windows-unattended -> ${base}/${version}/tutorial/install-mongodb-on-windows/ +[*-v3.6]: /${version}/tutorial/install-mongodb-enterprise-on-windows-unattended -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-windows/ + +[*-v3.4]: /${version}/core/causal-consistency-read-write-concerns -> ${base}/${version}/core/read-isolation-consistency-recency/ +[v3.6-*]: /${version}/core/security-encryption -> ${base}/${version}/security/ + +[*-v3.4]: /${version}/reference/operator/aggregation/currentOp -> ${base}/${version}/reference/command/currentOp/ # 2.8 compatibility # -# [*]: /${version}/release-notes/2.8-downgrade -> ${base}/${version}/release-notes -# [*]: /${version}/release-notes/2.8-compatibility -> ${base}/${version}/release-notes -# [*]: /${version}/release-notes/2.8-changes -> ${base}/${version}/release-notes -# [*]: /${version}/release-notes/2.8-general-improvements -> ${base}/${version}/release-notes -# [*]: /${version}/release-notes/2.8 -> ${base}/${version}/release-notes/3.0 -# [*]: /${version}/release-notes/2.8-upgrade -> ${base}/${version}/release-notes/3.0-upgrade -# [*]: /${version}/release-notes/2.8-downgrade -> ${base}/${version}/release-notes/3.0-downgrade -# [*]: /${version}/release-notes/2.8-compatibility -> ${base}/v${version}/release-notes/3.0-compatibility -# [*]: /${version}/release-notes/2.8-general-improvements -> ${base}/${version}/release-notes/3.0 -# [*]: /${version}/release-notes/2.8-changes -> ${base}/${version}/release-notes/3.0 +# [*]: /${version}/release-notes/2.8-downgrade -> ${base}/${version}/release-notes/ +# [*]: /${version}/release-notes/2.8-compatibility -> ${base}/${version}/release-notes/ +# [*]: /${version}/release-notes/2.8-changes -> ${base}/${version}/release-notes/ +# [*]: /${version}/release-notes/2.8-general-improvements -> ${base}/${version}/release-notes/ +# [*]: /${version}/release-notes/2.8 -> ${base}/${version}/release-notes/3.0/ +# [*]: /${version}/release-notes/2.8-upgrade -> ${base}/${version}/release-notes/3.0-upgrade/ +# [*]: /${version}/release-notes/2.8-downgrade -> ${base}/${version}/release-notes/3.0-downgrade/ +# [*]: /${version}/release-notes/2.8-compatibility -> ${base}/v${version}/release-notes/3.0-compatibility/ +# [*]: /${version}/release-notes/2.8-general-improvements -> ${base}/${version}/release-notes/3.0/ +# [*]: /${version}/release-notes/2.8-changes -> ${base}/${version}/release-notes/3.0/ # [v3.6-v3.6]: /${version}/upcoming -> ${base}/master/release-notes/4.0/ raw: /v2.8 -> ${base}/v3.0 -raw: /v2.8/release-notes/2.8-downgrade -> ${base}/v3.0/release-notes -raw: /v2.8/release-notes/2.8-compatibility -> ${base}/v3.0/release-notes -raw: /v2.8/release-notes/2.8-changes -> ${base}/v3.0/release-notes -raw: /v2.8/release-notes/2.8-general-improvements -> ${base}/v3.0/release-notes -raw: /v2.8/release-notes/2.8 -> ${base}/v2.8/release-notes/3.0 -raw: /v2.8/release-notes/2.8-upgrade -> ${base}/v3.0/release-notes/3.0-upgrade -raw: /v2.8/release-notes/2.8-downgrade -> ${base}/v3.0/release-notes/3.0-downgrade -raw: /v2.8/release-notes/2.8-compatibility -> ${base}/vv3.0/release-notes/3.0-compatibility -raw: /v2.8/release-notes/2.8-general-improvements -> ${base}/v3.0/release-notes/3.0 -raw: /v2.8/release-notes/2.8-changes -> ${base}/v3.0/release-notes/3.0 +raw: /v2.8/release-notes/2.8-downgrade -> ${base}/v3.0/release-notes/ +raw: /v2.8/release-notes/2.8-compatibility -> ${base}/v3.0/release-notes/ +raw: /v2.8/release-notes/2.8-changes -> ${base}/v3.0/release-notes/ +raw: /v2.8/release-notes/2.8-general-improvements -> ${base}/v3.0/release-notes/ +raw: /v2.8/release-notes/2.8 -> ${base}/v2.8/release-notes/3.0/ +raw: /v2.8/release-notes/2.8-upgrade -> ${base}/v3.0/release-notes/3.0-upgrade/ +raw: /v2.8/release-notes/2.8-downgrade -> ${base}/v3.0/release-notes/3.0-downgrade/ +raw: /v2.8/release-notes/2.8-compatibility -> ${base}/vv3.0/release-notes/3.0-compatibility/ +raw: /v2.8/release-notes/2.8-general-improvements -> ${base}/v3.0/release-notes/3.0/ +raw: /v2.8/release-notes/2.8-changes -> ${base}/v3.0/release-notes/3.0/ # Epub files -[*]: /${version}/MongoDB-Manual.epub -> ${base}/${version}/mongodb-manual-${version}.epub -[*]: /${version}/MongoDB-manual.epub -> ${base}/${version}/mongodb-manual-${version}.epub +[*]: /${version}/MongoDB-Manual.epub -> ${base}/${version}/mongodb-manual-${version}.epub/ +[*]: /${version}/MongoDB-manual.epub -> ${base}/${version}/mongodb-manual-${version}.epub/ # Documentation tarballs -[*]: /${version}/MongoDB-manual.tar.gz -> ${base}/${version}/mongodb-manual.tar.gz -[*]: /${version}/MongoDB-manual-${version}.tar.gz -> ${base}/${version}/mongodb-manual-${version}.tar.gz +[*]: /${version}/MongoDB-manual.tar.gz -> ${base}/${version}/mongodb-manual.tar.gz/ +[*]: /${version}/MongoDB-manual-${version}.tar.gz -> ${base}/${version}/mongodb-manual-${version}.tar.gz/ # Internal methods and commands -[*]: /${version}/reference/method/clearRawMongoProgramOutput -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/js-subprocess -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/rawMongoProgramOutput -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/run -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/runMongoProgram -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/sh.waitForDLock -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/startMongoProgram -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/stopMongoProgram -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/stopMongoProgramByPid -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/stopMongod -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/waitMongoProgramOnPort -> ${base}/${version}/reference/method -[*]: /${version}/reference/method/waitProgram -> ${base}/${version}/reference/method -[*]: /${version}/reference/command/repairCursor -> ${base}/${version}/reference/command - -[*]: /${version}/core/operational-segregation -> ${base}/${version}/core/workload-isolation +[*]: /${version}/reference/method/clearRawMongoProgramOutput -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/js-subprocess -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/rawMongoProgramOutput -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/run -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/runMongoProgram -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/sh.waitForDLock -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/startMongoProgram -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/stopMongoProgram -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/stopMongoProgramByPid -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/stopMongod -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/waitMongoProgramOnPort -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/method/waitProgram -> ${base}/${version}/reference/method/ +[*]: /${version}/reference/command/repairCursor -> ${base}/${version}/reference/command/ + +[*]: /${version}/core/operational-segregation -> ${base}/${version}/core/workload-isolation/ # DOCSP-3769 -[*]: /${version}/applications/drivers -> https://docs.mongodb.com/ecosystem/drivers +[*]: /${version}/applications/drivers -> https://docs.mongodb.com/drivers/ # Redirects for 4.2 and greater -[v4.2-*]: /${version}/reference/command/eval -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-eval-command -[v4.2-*]: /${version}/reference/command/parallelCollectionScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-parallelcollectionscan-command -[v4.2-*]: /${version}/reference/command/group -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-group-command -[v4.2-*]: /${version}/reference/method/db.collection.group -> ${base}/${version}/4.2-compatibility/#remove-support-for-the-group-command -[v4.2-*]: /${version}/reference/operator/meta/maxScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-maxscan -[v4.2-*]: /${version}/reference/method/cursor.maxScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-maxscan -[v4.2-*]: /${version}/reference/command/geoNear -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-geonear-command -[v4.2-*]: /${version}/reference/command/repairDatabase -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-repairdatabase-command -[v4.2-*]: /${version}/reference/method/db.collection.repairDatabase -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-repairdatabase-command -[v4.2-*]: /${version}/core/mmapv1 -> ${base}/${version}/storage - -[v4.2-*]: /${version}/reference/command/getPrevError -> ${base}/${version}/reference/command -[v4.2-*]: /${version}/reference/method/db.getPrevError -> ${base}/${version}/reference/method -[v4.2-*]: /${version}/reference/read-preference -> ${base}/${version}/core/read-preference - -# Redirects for 4.0 or earlier (i.e. before 4.2), stopping at v3.0 since otherwise to help slow the growth in the number of our redirects - -[v3.0-v4.0]: /${version}/release-notes/4.2 -> ${base}/${version}/release-notes -[v3.0-v4.0]: /${version}/release-notes/4.2-compatibility -> ${base}/${version}/release-notes -[v3.0-v4.0]: /${version}/reference/method/passwordPrompt -> ${base}/${version}/reference/method/js-user-management -[v3.0-v4.0]: /${version}/reference/expansion-directives -> ${base}/${version}/reference/configuration-options -[v3.0-v4.0]: /${version}/reference/operator/aggregation/planCacheStats -> ${base}/${version}/reference/command/planCacheListPlans +[v4.2-*]: /${version}/reference/command/eval -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-eval-command/ +[v4.2-*]: /${version}/reference/command/parallelCollectionScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-parallelcollectionscan-command/ +[v4.2-*]: /${version}/reference/command/group -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-group-command/ +[v4.2-*]: /${version}/reference/method/db.collection.group -> ${base}/${version}/4.2-compatibility/#remove-support-for-the-group-command/ +[v4.2-*]: /${version}/reference/operator/meta/maxScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-maxscan/ +[v4.2-*]: /${version}/reference/method/cursor.maxScan -> ${base}/${version}/release-notes/4.2-compatibility/#remove-maxscan/ +[v4.2-*]: /${version}/reference/command/geoNear -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-geonear-command/ +[v4.2-*]: /${version}/reference/command/repairDatabase -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-repairdatabase-command/ +[v4.2-*]: /${version}/reference/method/db.collection.repairDatabase -> ${base}/${version}/release-notes/4.2-compatibility/#remove-support-for-the-repairdatabase-command/ +[v4.2-*]: /${version}/core/mmapv1 -> ${base}/${version}/storage/ + +[v4.2-*]: /${version}/reference/command/getPrevError -> ${base}/${version}/reference/command/ +[v4.2-*]: /${version}/reference/method/db.getPrevError -> ${base}/${version}/reference/method/ +[v4.2-*]: /${version}/reference/read-preference -> ${base}/${version}/core/read-preference/ + +# Redirects for 4.0 or earlier (i.e. before 4.2), stopping at v3.0 since otherwise to help slow the growth in the number of our redirects + +[v3.0-v4.0]: /${version}/release-notes/4.2 -> ${base}/${version}/release-notes/ +[v3.0-v4.0]: /${version}/release-notes/4.2-compatibility -> ${base}/${version}/release-notes/ +[v3.0-v4.0]: /${version}/reference/method/passwordPrompt -> ${base}/${version}/reference/method/js-user-management/ +[v3.0-v4.0]: /${version}/reference/expansion-directives -> ${base}/${version}/reference/configuration-options/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/planCacheStats -> ${base}/${version}/reference/command/planCacheListPlans/ [v3.0-v4.0]: /${version}/reference/command/dropConnections -> ${base}/${version}/reference/command/ -[v3.0-v4.0]: /${version}/tutorial/rotate-key-replica-set -> ${base}/${version}/tutorial/deploy-replica-set-with-keyfile-access-control -[v3.0-v4.0]: /${version}/tutorial/rotate-key-sharded-cluster -> ${base}/${version}/tutorial/deploy-sharded-cluster-with-keyfile-access-control -[v3.0-v4.0]: /${version}/reference/operator/aggregation/set -> ${base}/${version}/reference/operator/aggregation/addFields -[v3.0-v4.0]: /${version}/core/transactions-sharded-clusters -> ${base}/${version}/core/transactions-production-consideration -[v3.0-v4.0]: /${version}/core/transactions-in-applications -> ${base}/${version}/core/transactions -[v3.0-v4.0]: /${version}/core/materialized-views -> ${base}/${version}/core/views -[v3.0-v4.0]: /${version}/reference/operator/aggregation/merge -> ${base}/${version}/reference/operator/aggregation/out -[v3.0-v4.0]: /${version}/reference/operator/aggregation/replaceWith -> ${base}/${version}/reference/operator/aggregation/replaceRoot +[v3.0-v4.0]: /${version}/tutorial/rotate-key-replica-set -> ${base}/${version}/tutorial/deploy-replica-set-with-keyfile-access-control/ +[v3.0-v4.0]: /${version}/tutorial/rotate-key-sharded-cluster -> ${base}/${version}/tutorial/deploy-sharded-cluster-with-keyfile-access-control/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/set -> ${base}/${version}/reference/operator/aggregation/addFields/ +[v3.0-v4.0]: /${version}/core/transactions-sharded-clusters -> ${base}/${version}/core/transactions-production-consideration/ +[v3.0-v4.0]: /${version}/core/transactions-in-applications -> ${base}/${version}/core/transactions/ +[v3.0-v4.0]: /${version}/core/materialized-views -> ${base}/${version}/core/views/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/merge -> ${base}/${version}/reference/operator/aggregation/out/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/replaceWith -> ${base}/${version}/reference/operator/aggregation/replaceRoot/ # Stopping at v3.4 to reduce growth in redirects -[v3.4-v4.0]: /${version}/core/retryable-reads -> ${base}/${version}/crud +[v3.4-v4.0]: /${version}/core/retryable-reads -> ${base}/${version}/crud/ -[v3.0-v4.0]: /${version}/reference/operator/aggregation/unset -> ${base}/${version}/reference/operator/aggregation/project -[v3.0-v4.0]: /${version}/tutorial/rotate-x509-membership-certificates -> ${base}/${version}/tutorial/configure-x509-member-authentication -[v3.0-v4.0]: /${version}/reference/mongodb-extended-json-v1 -> ${base}/${version}/reference/mongodb-extended-json +[v3.0-v4.0]: /${version}/reference/operator/aggregation/unset -> ${base}/${version}/reference/operator/aggregation/project/ +[v3.0-v4.0]: /${version}/tutorial/rotate-x509-membership-certificates -> ${base}/${version}/tutorial/configure-x509-member-authentication/ +[v3.0-v4.0]: /${version}/reference/mongodb-extended-json-v1 -> ${base}/${version}/reference/mongodb-extended-json/ -[v3.0-v4.0]: /${version}/tutorial/update-documents-with-aggregation-pipeline -> ${base}/${version}/tutorial/update-documents +[v3.0-v4.0]: /${version}/tutorial/update-documents-with-aggregation-pipeline -> ${base}/${version}/tutorial/update-documents/ -[v3.4-v4.0]: /${version}/release-notes/4.2-upgrade-standalone -> ${base}/${version}/release-notes -[v3.4-v4.0]: /${version}/release-notes/4.2-upgrade-replica-set -> ${base}/${version}/release-notes -[v3.4-v4.0]: /${version}/release-notes/4.2-upgrade-sharded-cluster -> ${base}/${version}/release-notes -[v3.4-v4.0]: /${version}/release-notes/4.2-downgrade-standalone -> ${base}/${version}/release-notes -[v3.4-v4.0]: /${version}/release-notes/4.2-downgrade-replica-set -> ${base}/${version}/release-notes -[v3.4-v4.0]: /${version}/release-notes/4.2-downgrade-sharded-cluster -> ${base}/${version}/release-notes +[v3.4-v4.0]: /${version}/release-notes/4.2-upgrade-standalone -> ${base}/${version}/release-notes/ +[v3.4-v4.0]: /${version}/release-notes/4.2-upgrade-replica-set -> ${base}/${version}/release-notes/ +[v3.4-v4.0]: /${version}/release-notes/4.2-upgrade-sharded-cluster -> ${base}/${version}/release-notes/ +[v3.4-v4.0]: /${version}/release-notes/4.2-downgrade-standalone -> ${base}/${version}/release-notes/ +[v3.4-v4.0]: /${version}/release-notes/4.2-downgrade-replica-set -> ${base}/${version}/release-notes/ +[v3.4-v4.0]: /${version}/release-notes/4.2-downgrade-sharded-cluster -> ${base}/${version}/release-notes/ # CSFLE Redirects -[v3.0-v4.0]: /${version}/core/security-client-side-encryption -> ${base}/${version}/security -[v3.0-v4.0]: /${version}/core/security-automatic-client-side-encryption -> ${base}/${version}/security -[v3.0-v4.0]: /${version}/core/security-explicit-client-side-encryption -> ${base}/${version}/security -[v3.0-v4.0]: /${version}/core/security-client-side-encryption-key-management -> ${base}/${version}/security -[v3.0-v4.0]: /${version}/reference/security-client-side-encryption-limitations -> ${base}/${version}/security -[v3.0-v4.0]: /${version}/reference/security-client-side-encryption-automatic-json-schema -> ${base}/${version}/security -[v3.0-v4.0]: /${version}/reference/security-client-side-encryption-query-aggregation-support -> ${base}/${version}/security -[v3.0-v4.0]: /${version}/reference/security-client-side-encryption-appendix -> ${base}/${version}/security -[v3.0-v4.0]: /${version}/tutorial/manage-client-side-encryption-data-keys -> ${base}/${version}/security -[v3.0-v4.0]: /${version}/reference/method/js-client-side-field-level-encryption -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/getKeyVault -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/KeyVault.createKey -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/KeyVault.deleteKey -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/KeyVault.getKey -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/KeyVault.getKeys -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/KeyVault.addKeyAlternateName -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/KeyVault.removeKeyAlternateName -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/KeyVault.getKeyByAltName -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/getClientEncryption -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/ClientEncryption.encrypt -> ${base}/${version}/reference/method -[v3.0-v4.0]: /${version}/reference/method/ClientEncryption.decrypt -> ${base}/${version}/reference/method - -[v4.0-*]: /${version}/core/security-built-in-roles -> ${base}/${version}/reference/built-in-roles -[v4.0-*]: /${version}/core/security-network -> ${base}/${version}/core/security-hardening +[v3.0-v4.0]: /${version}/core/security-client-side-encryption -> ${base}/${version}/security / +[v3.0-v4.0]: /${version}/core/security-automatic-client-side-encryption -> ${base}/${version}/security/ +[v3.0-v4.0]: /${version}/core/security-explicit-client-side-encryption -> ${base}/${version}/security/ +[v3.0-v4.0]: /${version}/core/security-client-side-encryption-key-management -> ${base}/${version}/security/ +[v3.0-v4.0]: /${version}/reference/security-client-side-encryption-limitations -> ${base}/${version}/security/ +[v3.0-v4.0]: /${version}/reference/security-client-side-encryption-automatic-json-schema -> ${base}/${version}/security/ +[v3.0-v4.0]: /${version}/reference/security-client-side-encryption-query-aggregation-support -> ${base}/${version}/security/ +[v3.0-v4.0]: /${version}/reference/security-client-side-encryption-appendix -> ${base}/${version}/security/ +[v3.0-v4.0]: /${version}/tutorial/manage-client-side-encryption-data-keys -> ${base}/${version}/security/ +[v3.0-v4.0]: /${version}/reference/method/js-client-side-field-level-encryption -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/getKeyVault -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/KeyVault.createKey -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/KeyVault.deleteKey -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/KeyVault.getKey -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/KeyVault.getKeys -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/KeyVault.addKeyAlternateName -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/KeyVault.removeKeyAlternateName -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/KeyVault.getKeyByAltName -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/getClientEncryption -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/ClientEncryption.encrypt -> ${base}/${version}/reference/method/ +[v3.0-v4.0]: /${version}/reference/method/ClientEncryption.decrypt -> ${base}/${version}/reference/method/ + +[v4.0-*]: /${version}/core/security-built-in-roles -> ${base}/${version}/reference/built-in-roles/ +[v4.0-*]: /${version}/core/security-network -> ${base}/${version}/core/security-hardening/ # Redirects for 4.2 trig functions DOCS-12338 -[v3.0-v4.0]: /${version}/reference/operator/aggregation/sin -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/cos -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/tan -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/asin -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/acos -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/atan -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/atan2 -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/asinh -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/acosh -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/atanh -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/sinh -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/cosh -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/tanh -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/degreesToRadians -> ${base}/${version}/reference/operator/aggregation -[v3.0-v4.0]: /${version}/reference/operator/aggregation/radiansToDegrees -> ${base}/${version}/reference/operator/aggregation +[v3.0-v4.0]: /${version}/reference/operator/aggregation/sin -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/cos -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/tan -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/asin -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/acos -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/atan -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/atan2 -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/asinh -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/acosh -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/atanh -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/sinh -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/cosh -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/tanh -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/degreesToRadians -> ${base}/${version}/reference/operator/aggregation/ +[v3.0-v4.0]: /${version}/reference/operator/aggregation/radiansToDegrees -> ${base}/${version}/reference/operator/aggregation/ # Redirect manual's Atlas tutorial to Atlas docs DOCSP-5703 [v3.4-*]: /${version}/tutorial/atlas-free-tier-setup/ -> https://docs.atlas.mongodb.com/getting-started/ # Redirect strange link in compass -raw: /manual/core/wildcard -> ${base}/manual/core/index-wildcard +raw: /manual/core/wildcard -> ${base}/manual/core/index-wildcard/ # Redirect linux tarball install pages and windows unattended pages (only present in v3.6+) -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-red-hat-tarball -> ${base}/${version}/tutorial/install-mongodb-on-red-hat -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-red-hat-tarball -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-red-hat -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-ubuntu-tarball -> ${base}/${version}/tutorial/install-mongodb-on-ubuntu -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-ubuntu-tarball -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-ubuntu -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-debian-tarball -> ${base}/${version}/tutorial/install-mongodb-on-debian -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-debian-tarball -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-debian -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-suse-tarball -> ${base}/${version}/tutorial/install-mongodb-on-suse -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-suse-tarball -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-suse -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-amazon-tarball -> ${base}/${version}/tutorial/install-mongodb-on-amazon -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-amazon-tarball -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-amazon -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-windows-unattended -> ${base}/${version}/tutorial/install-mongodb-on-windows -[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-windows-unattended -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-windows - -[v3.4-v3.6]: /${version}/reference/command/clearJumboFlag -> ${base}/${version}/tutorial/clear-jumbo-flag +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-red-hat-tarball -> ${base}/${version}/tutorial/install-mongodb-on-red-hat/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-red-hat-tarball -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-red-hat/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-ubuntu-tarball -> ${base}/${version}/tutorial/install-mongodb-on-ubuntu/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-ubuntu-tarball -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-ubuntu/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-debian-tarball -> ${base}/${version}/tutorial/install-mongodb-on-debian/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-debian-tarball -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-debian/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-suse-tarball -> ${base}/${version}/tutorial/install-mongodb-on-suse/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-suse-tarball -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-suse/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-amazon-tarball -> ${base}/${version}/tutorial/install-mongodb-on-amazon/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-amazon-tarball -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-amazon/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-on-windows-unattended -> ${base}/${version}/tutorial/install-mongodb-on-windows/ +[v3.0-v3.4]: /${version}/tutorial/install-mongodb-enterprise-on-windows-unattended -> ${base}/${version}/tutorial/install-mongodb-enterprise-on-windows/ + +[v3.4-v3.6]: /${version}/reference/command/clearJumboFlag -> ${base}/${version}/tutorial/clear-jumbo-flag/ # # Redirects for 4.4 and greater (if pages are removed in 4.4 that used to exist in earlier versions) @@ -1704,81 +1702,81 @@ raw: /manual/core/wildcard -> ${base}/manual/core/index-wildcard # For the earliest version, let's use v3.4 instead of all earlier version *, # That is [v3.4-4.2] instead of [*-v4.2] so that we try to limit the growth of redirects -[v3.4-v4.2]: /${version}/reference/operator/aggregation/accumulator -> ${base}/${version}/reference/operator/aggregation -[v3.4-v4.2]: /${version}/reference/operator/aggregation/binarySize -> ${base}/${version}/reference/operator/aggregation -[v3.4-v4.2]: /${version}/reference/operator/aggregation/bsonSize -> ${base}/${version}/reference/operator/aggregation -[v3.4-v4.2]: /${version}/reference/operator/aggregation/replaceAll -> ${base}/${version}/reference/operator/aggregation -[v3.4-v4.2]: /${version}/reference/operator/aggregation/replaceOne -> ${base}/${version}/reference/operator/aggregation -[v3.4-v4.2]: /${version}/reference/operator/aggregation/function -> ${base}/${version}/reference/operator/aggregation +[v3.4-v4.2]: /${version}/reference/operator/aggregation/accumulator -> ${base}/${version}/reference/operator/aggregation/ +[v3.4-v4.2]: /${version}/reference/operator/aggregation/binarySize -> ${base}/${version}/reference/operator/aggregation/ +[v3.4-v4.2]: /${version}/reference/operator/aggregation/bsonSize -> ${base}/${version}/reference/operator/aggregation/ +[v3.4-v4.2]: /${version}/reference/operator/aggregation/replaceAll -> ${base}/${version}/reference/operator/aggregation/ +[v3.4-v4.2]: /${version}/reference/operator/aggregation/replaceOne -> ${base}/${version}/reference/operator/aggregation/ +[v3.4-v4.2]: /${version}/reference/operator/aggregation/function -> ${base}/${version}/reference/operator/aggregation/ -## Redirects for release notes - trying something more specific +## Redirects for release notes - trying something more specific -[v4.2]: /${version}/release-notes/4.4 -> ${base}/${version}/release-notes/4.2 -[v4.0]: /${version}/release-notes/4.4 -> ${base}/${version}/release-notes/4.0 -[v3.6]: /${version}/release-notes/4.4 -> ${base}/${version}/release-notes/3.6 -[v3.4]: /${version}/release-notes/4.4 -> ${base}/${version}/release-notes/3.4 +[v4.2]: /${version}/release-notes/4.4 -> ${base}/${version}/release-notes/4.2/ +[v4.0]: /${version}/release-notes/4.4 -> ${base}/${version}/release-notes/4.0/ +[v3.6]: /${version}/release-notes/4.4 -> ${base}/${version}/release-notes/3.6/ +[v3.4]: /${version}/release-notes/4.4 -> ${base}/${version}/release-notes/3.4/ -[v4.2]: /${version}/release-notes/4.4-upgrade-standalone -> ${base}/${version}/release-notes/4.2-upgrade-standalone -[v4.0]: /${version}/release-notes/4.4-upgrade-standalone -> ${base}/${version}/release-notes/4.0-upgrade-standalone -[v3.6]: /${version}/release-notes/4.4-upgrade-standalone -> ${base}/${version}/release-notes/3.6-upgrade-standalone -[v3.4]: /${version}/release-notes/4.4-upgrade-standalone -> ${base}/${version}/release-notes/3.4-upgrade-standalone +[v4.2]: /${version}/release-notes/4.4-upgrade-standalone -> ${base}/${version}/release-notes/4.2-upgrade-standalone/ +[v4.0]: /${version}/release-notes/4.4-upgrade-standalone -> ${base}/${version}/release-notes/4.0-upgrade-standalone/ +[v3.6]: /${version}/release-notes/4.4-upgrade-standalone -> ${base}/${version}/release-notes/3.6-upgrade-standalone/ +[v3.4]: /${version}/release-notes/4.4-upgrade-standalone -> ${base}/${version}/release-notes/3.4-upgrade-standalone/ -[v4.2]: /${version}/release-notes/4.4-upgrade-replica-set -> ${base}/${version}/release-notes/4.2-upgrade-replica-set -[v4.0]: /${version}/release-notes/4.4-upgrade-replica-set -> ${base}/${version}/release-notes/4.0-upgrade-replica-set -[v3.6]: /${version}/release-notes/4.4-upgrade-replica-set -> ${base}/${version}/release-notes/3.6-upgrade-replica-set -[v3.4]: /${version}/release-notes/4.4-upgrade-replica-set -> ${base}/${version}/release-notes/3.4-upgrade-replica-set +[v4.2]: /${version}/release-notes/4.4-upgrade-replica-set -> ${base}/${version}/release-notes/4.2-upgrade-replica-set/ +[v4.0]: /${version}/release-notes/4.4-upgrade-replica-set -> ${base}/${version}/release-notes/4.0-upgrade-replica-set/ +[v3.6]: /${version}/release-notes/4.4-upgrade-replica-set -> ${base}/${version}/release-notes/3.6-upgrade-replica-set/ +[v3.4]: /${version}/release-notes/4.4-upgrade-replica-set -> ${base}/${version}/release-notes/3.4-upgrade-replica-set/ -[v4.2]: /${version}/release-notes/4.4-upgrade-sharded-cluster -> ${base}/${version}/release-notes/4.2-upgrade-sharded-cluster -[v4.0]: /${version}/release-notes/4.4-upgrade-sharded-cluster -> ${base}/${version}/release-notes/4.0-upgrade-sharded-cluster -[v3.6]: /${version}/release-notes/4.4-upgrade-sharded-cluster -> ${base}/${version}/release-notes/3.6-upgrade-sharded-cluster -[v3.4]: /${version}/release-notes/4.4-upgrade-sharded-cluster -> ${base}/${version}/release-notes/3.4-upgrade-sharded-cluster +[v4.2]: /${version}/release-notes/4.4-upgrade-sharded-cluster -> ${base}/${version}/release-notes/4.2-upgrade-sharded-cluster/ +[v4.0]: /${version}/release-notes/4.4-upgrade-sharded-cluster -> ${base}/${version}/release-notes/4.0-upgrade-sharded-cluster/ +[v3.6]: /${version}/release-notes/4.4-upgrade-sharded-cluster -> ${base}/${version}/release-notes/3.6-upgrade-sharded-cluster/ +[v3.4]: /${version}/release-notes/4.4-upgrade-sharded-cluster -> ${base}/${version}/release-notes/3.4-upgrade-sharded-cluster/ -[v3.4-v4.2]: /${version}/release-notes/4.4-downgrade-standalone -> ${base}/${version}/release-notes -[v3.4-v4.2]: /${version}/release-notes/4.4-downgrade-replica-set -> ${base}/${version}/release-notes -[v3.4-v4.2]: /${version}/release-notes/4.4-downgrade-sharded-cluster -> ${base}/${version}/release-notes +[v3.4-v4.2]: /${version}/release-notes/4.4-downgrade-standalone -> ${base}/${version}/release-notes/ +[v3.4-v4.2]: /${version}/release-notes/4.4-downgrade-replica-set -> ${base}/${version}/release-notes/ +[v3.4-v4.2]: /${version}/release-notes/4.4-downgrade-sharded-cluster -> ${base}/${version}/release-notes/ -[v3.4-v4.2]: /${version}/reference/operator/aggregation/last-array-element -> ${base}/${version}/reference/operator/aggregation/arrayElemAt -[v3.4-v4.2]: /${version}/reference/operator/aggregation/first-array-element -> ${base}/${version}/reference/operator/aggregation/arrayElemAt -[v3.4-v4.2]: /${version}/reference/operator/aggregation/isNumber -> ${base}/${version}/reference/operator/aggregation/type -[v3.4-v4.2]: /${version}/reference/operator/aggregation/unionWith -> ${base}/${version}/reference/operator/aggregation-pipeline +[v3.4-v4.2]: /${version}/reference/operator/aggregation/last-array-element -> ${base}/${version}/reference/operator/aggregation/arrayElemAt/ +[v3.4-v4.2]: /${version}/reference/operator/aggregation/first-array-element -> ${base}/${version}/reference/operator/aggregation/arrayElemAt/ +[v3.4-v4.2]: /${version}/reference/operator/aggregation/isNumber -> ${base}/${version}/reference/operator/aggregation/type/ +[v3.4-v4.2]: /${version}/reference/operator/aggregation/unionWith -> ${base}/${version}/reference/operator/aggregation-pipeline/ -[v3.4-v4.2]: /${version}/reference/method/PlanCache.list -> ${base}/${version}/reference/operator/aggregation/planCacheStats -[v3.4-v4.2]: /${version}/reference/command/balancerCollectionStatus -> ${base}/${version}/reference/method/sh.status -[v3.4-v4.2]: /${version}/reference/method/sh.balancerCollectionStatus -> ${base}/${version}/reference/method/sh.status +[v3.4-v4.2]: /${version}/reference/method/PlanCache.list -> ${base}/${version}/reference/operator/aggregation/planCacheStats/ +[v3.4-v4.2]: /${version}/reference/command/balancerCollectionStatus -> ${base}/${version}/reference/method/sh.status/ +[v3.4-v4.2]: /${version}/reference/method/sh.balancerCollectionStatus -> ${base}/${version}/reference/method/sh.status/ -[v4.4-*]: /${version}/reference/command/cloneCollection -> ${base}/${version}/release-notes/4.4/#removed-commands -[v4.4-*]: /${version}/reference/method/db.cloneCollection -> ${base}/${version}/release-notes/4.4/#removed-commands -[v4.4-*]: /${version}/reference/command/planCacheListPlans -> ${base}/${version}/release-notes/4.4/#removed-commands -[v4.4-*]: /${version}/reference/command/planCacheListQueryShapes -> ${base}/${version}/release-notes/4.4/#removed-commands +[v4.4-*]: /${version}/reference/command/cloneCollection -> ${base}/${version}/release-notes/4.4/#removed-commands/ +[v4.4-*]: /${version}/reference/method/db.cloneCollection -> ${base}/${version}/release-notes/4.4/#removed-commands/ +[v4.4-*]: /${version}/reference/command/planCacheListPlans -> ${base}/${version}/release-notes/4.4/#removed-commands/ +[v4.4-*]: /${version}/reference/command/planCacheListQueryShapes -> ${base}/${version}/release-notes/4.4/#removed-commands/ -[v4.4-*]: /${version}/reference/method/PlanCache.getPlansByQuery -> ${base}/${version}/release-notes/4.4/#removed-commands -[v4.4-*]: /${version}/reference/method/PlanCache.listQueryShapes -> ${base}/${version}/release-notes/4.4/#removed-commands +[v4.4-*]: /${version}/reference/method/PlanCache.getPlansByQuery -> ${base}/${version}/release-notes/4.4/#removed-commands/ +[v4.4-*]: /${version}/reference/method/PlanCache.listQueryShapes -> ${base}/${version}/release-notes/4.4/#removed-commands/ -[v4.4-*]: /${version}/reference/program/mongosniff -> ${base}/${version}/reference/program/mongoreplay +[v4.4-*]: /${version}/reference/program/mongosniff -> ${base}/${version}/reference/program/mongoreplay/ -[v3.4-v4.2]: /${version}/reference/command/refineCollectionShardKey -> ${base}/${version}/core/sharding-shard-key +[v3.4-v4.2]: /${version}/reference/command/refineCollectionShardKey -> ${base}/${version}/core/sharding-shard-key/ -[v3.4-v4.2]: /${version}/core/read-preference-hedge-option -> ${base}/${version}/core/read-preference +[v3.4-v4.2]: /${version}/core/read-preference-hedge-option -> ${base}/${version}/core/read-preference/ -[v3.4-v4.2]: /${version}/reference/map-reduce-to-aggregation-pipeline -> ${base}/${version}/reference/aggregation-commands-comparison +[v3.4-v4.2]: /${version}/reference/map-reduce-to-aggregation-pipeline -> ${base}/${version}/reference/aggregation-commands-comparison/ -[v3.4-v4.2]: /${version}/reference/program/mongokerberos -> ${base}/${version}/reference/program +[v3.4-v4.2]: /${version}/reference/program/mongokerberos -> ${base}/${version}/reference/program/ -[v4.4-*]: /${version}/reference/operator/projection/meta -> ${base}/${version}/reference/operator/aggregation/meta +[v4.4-*]: /${version}/reference/operator/projection/meta -> ${base}/${version}/reference/operator/aggregation/meta/ -[v3.4-v4.2]: /${version}/core/index-hidden -> ${base}/indexes -[v3.4-v4.2]: /${version}/reference/method/db.collection.hideIndex -> ${base}/indexes -[v3.4-v4.2]: /${version}/reference/method/db.collection.unhideIndex -> ${base}/indexes -[v2.4-*]: /${version}/reference/method/rs.slaveOk -> ${base}/${version}/reference/method/Mongo.setReadPref/#specify-read-preference-mode -[v2.4-*]: /${version}/reference/method/Mongo.setSlaveOk -> ${base}/${version}/reference/method/Mongo.setReadPref/#specify-read-preference-mode +[v3.4-v4.2]: /${version}/core/index-hidden -> ${base}/indexes/ +[v3.4-v4.2]: /${version}/reference/method/db.collection.hideIndex -> ${base}/indexes/ +[v3.4-v4.2]: /${version}/reference/method/db.collection.unhideIndex -> ${base}/indexes/ +[v2.4-*]: /${version}/reference/method/rs.slaveOk -> ${base}/${version}/reference/method/Mongo.setReadPref/#specify-read-preference-mode/ +[v2.4-*]: /${version}/reference/method/Mongo.setSlaveOk -> ${base}/${version}/reference/method/Mongo.setReadPref/#specify-read-preference-mode/ -[v3.4-v4.0]: /${version}/reference/mongodb-defaults -> ${base}/${version}/reference +[v3.4-v4.0]: /${version}/reference/mongodb-defaults -> ${base}/${version}/reference/ -[v3.6-*]: /${version}/reference/command/clean -> ${base}/${version}/reference/command/nav-administration +[v3.6-*]: /${version}/reference/command/clean -> ${base}/${version}/reference/command/nav-administration/ From 88caec74f429ff87c0be8cdcfd8bd15dca3a6e15 Mon Sep 17 00:00:00 2001 From: Allison Reinheimer Moore Date: Thu, 4 Feb 2021 15:38:35 -0500 Subject: [PATCH 96/97] add missing trailing / --- config/redirects | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/redirects b/config/redirects index 39ced3d7dee..bd401194335 100644 --- a/config/redirects +++ b/config/redirects @@ -1537,7 +1537,7 @@ raw: /master/release-notes/3.0-general-improvements -> ${base}/release-notes/3.0 [v3.6-v3.6]: /${version}/upcoming -> ${base}/master/release-notes/4.0/ -raw: /v2.8 -> ${base}/v3.0 +raw: /v2.8 -> ${base}/v3.0/ raw: /v2.8/release-notes/2.8-downgrade -> ${base}/v3.0/release-notes/ raw: /v2.8/release-notes/2.8-compatibility -> ${base}/v3.0/release-notes/ raw: /v2.8/release-notes/2.8-changes -> ${base}/v3.0/release-notes/ From 62a2f69ef870e861e9755624646f81e7c9c7ca74 Mon Sep 17 00:00:00 2001 From: Asutosh Date: Sun, 7 Feb 2021 01:05:12 +0530 Subject: [PATCH 97/97] Update jsonSchema.txt --- source/reference/operator/query/jsonSchema.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/reference/operator/query/jsonSchema.txt b/source/reference/operator/query/jsonSchema.txt index 3aa9cc49c4d..79b3e15269f 100644 --- a/source/reference/operator/query/jsonSchema.txt +++ b/source/reference/operator/query/jsonSchema.txt @@ -178,7 +178,7 @@ operator to set schema validation rules: }) Given the created ``validator`` for the collection, the following insert -operation will fail because ``gpa`` is an integer when the ``validator`` +operation will fail because ``gpa`` is an integer whereas the ``validator`` requires a ``double``. .. code-block:: javascript