diff --git a/.tx/config b/.tx/config index 21e162d7512..5dff99a06af 100644 --- a/.tx/config +++ b/.tx/config @@ -3252,6 +3252,11 @@ file_filter = locale//LC_MESSAGES/reference/method/db.cloneCollection.po source_file = locale/pot/reference/method/db.cloneCollection.pot source_lang = en +[mongodb-manual.reference--method--db_printSecondaryReplicationInfo] +file_filter = locale//LC_MESSAGES/reference/method/db.printSecondaryReplicationInfo.po +source_file = locale/pot/reference/method/db.printSecondaryReplicationInfo.pot +source_lang = en + [mongodb-manual.reference--method--db_printSlaveReplicationInfo] file_filter = locale//LC_MESSAGES/reference/method/db.printSlaveReplicationInfo.po source_file = locale/pot/reference/method/db.printSlaveReplicationInfo.pot @@ -4087,6 +4092,11 @@ file_filter = locale//LC_MESSAGES/reference/method/db.collection.copyTo.po source_file = locale/pot/reference/method/db.collection.copyTo.pot source_lang = en +[mongodb-manual.reference--method--rs_printSecondaryReplicationInfo] +file_filter = locale//LC_MESSAGES/reference/method/rs.printSecondaryReplicationInfo.po +source_file = locale/pot/reference/method/rs.printSecondaryReplicationInfo.pot +source_lang = en + [mongodb-manual.reference--method--rs_printSlaveReplicationInfo] file_filter = locale//LC_MESSAGES/reference/method/rs.printSlaveReplicationInfo.po source_file = locale/pot/reference/method/rs.printSlaveReplicationInfo.pot 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))) 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..1a3f25b100a 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.4' + branch: '4.4' system: files: - 'pdfs.yaml' 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 diff --git a/config/redirects b/config/redirects index 61785fd581e..89b145df026 100644 --- a/config/redirects +++ b/config/redirects @@ -1,868 +1,870 @@ 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: upcoming -> v4.4 -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 -[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 +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/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.4-*]: /${version}/administration/sharded-cluster-deployment -> ${base}/${version}/tutorial/deploy-shard-cluster/ +[v3.2-v3.4]: /${version}/tutorial/deploy-shard-cluster/ -> ${base}/${version}/tutorial/deploy-sharded-cluster-ranged-sharding/ +[v3.2-v3.4]: /${version}/administration/sharded-cluster-deployment -> ${base}/${version}/tutorial/deploy-sharded-cluster-ranged-sharding/ +(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,795 +901,802 @@ symlink: master -> v4.4 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/hashed -> ${base}/${version}/core/index-hashed/ + +[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/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.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.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.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 -> ${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/ # 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/ + +# Redirects Atlas $search for ticket DOCSP-14880 +[v3.4-v4.0]: /${version}/reference/operator/aggregation/search -> ${base}/${version}/reference/operator/aggregation/ + +[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/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) @@ -1698,81 +1707,82 @@ 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/ 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..533389b635a 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.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 = "5.0" +version = "4.4" release = "{+release+}" pgp-version = "{+version+}" pgp-fingerprint = "E162F504A20CDF15827F718D4B7C549A058F8B6B" 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/administration/production-notes.txt b/source/administration/production-notes.txt index 9c500c8cd4d..9e7f7c6cddd 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 @@ -643,14 +643,6 @@ operations like the following: - Features which rely on timekeeping may have inconsistent or unpredictable behavior in clusters with clock drift between MongoDB components. - - For example, :ref:`TTL indexes ` rely - on the system clock to calculate when to delete a given document. If - two members have different system clock times, each member could - delete a given document covered by the TTL index at a different - time. Since :ref:`sessions` use TTL indexes to control their - lifespan, clock drift could result in inconsistent or unpredictable - session timeout behavior. NTP synchronization is required for deployments running MongoDB lower than ``3.4.6`` or ``3.2.17`` with the Wired Tiger storage engine, where diff --git a/source/administration/replica-set-maintenance.txt b/source/administration/replica-set-maintenance.txt index 5d05f56dce0..3ce1a0bc812 100644 --- a/source/administration/replica-set-maintenance.txt +++ b/source/administration/replica-set-maintenance.txt @@ -51,6 +51,9 @@ replica sets. :doc:`/tutorial/configure-replica-set-secondary-sync-target` Specify the member that a secondary member synchronizes from. + :doc:`/tutorial/rename-unsharded-replica-set` + Rename an unsharded replica set. + .. toctree:: :titlesonly: @@ -65,3 +68,4 @@ replica sets. /tutorial/manage-chained-replication /tutorial/change-hostnames-in-a-replica-set /tutorial/configure-replica-set-secondary-sync-target + /tutorial/rename-unsharded-replica-set 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-sharded-collections.txt b/source/core/aggregation-pipeline-sharded-collections.txt index ce83212238d..5481e94bc19 100644 --- a/source/core/aggregation-pipeline-sharded-collections.txt +++ b/source/core/aggregation-pipeline-sharded-collections.txt @@ -30,9 +30,16 @@ to be done on the primary shard. .. versionchanged:: 3.6 When aggregation operations run on multiple shards, the results are -routed to the :binary:`~bin.mongos` to be merged. However, :pipeline:`$out` -and :pipeline:`$lookup` must run on the :ref:`primary shard ` -and are aggregated there. +routed to the :binary:`~bin.mongos` to be merged, except in the +following cases: + +- If the pipeline includes the :pipeline:`$out` or + :pipeline:`$lookup` stages, the merge runs on the + :ref:`primary shard `. + +- If the pipeline includes a sorting or grouping stage, and the + :ref:`allowDiskUse ` setting is enabled, + the merge runs on a randomly-selected shard. Optimization ------------ 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/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 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: diff --git a/source/core/index-creation.txt b/source/core/index-creation.txt index 24810de0576..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: @@ -190,21 +194,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`. diff --git a/source/core/index-intersection.txt b/source/core/index-intersection.txt index 8c089e53bfa..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: @@ -133,15 +152,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 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 -------- diff --git a/source/core/index-text.txt b/source/core/index-text.txt index 7830f75a14d..b67489a437c 100644 --- a/source/core/index-text.txt +++ b/source/core/index-text.txt @@ -12,8 +12,6 @@ Text Indexes :depth: 1 :class: singlecol -.. include:: /includes/fact-atlas-search-banner.rst - Overview -------- 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 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/core/query-plans.txt b/source/core/query-plans.txt index 5b78756cd38..4fe4a731241 100644 --- a/source/core/query-plans.txt +++ b/source/core/query-plans.txt @@ -141,6 +141,25 @@ Users can also: .. seealso:: :ref:`query-hash-plan-cache-key` +Plan Cache Debug Info Size Limit +-------------------------------- + +Starting in MongoDB 5.0 (and 4.4.3, 4.2.12, 4.0.23, and 3.6.23), the +:doc:`plan cache ` will save full ``plan cache`` +entries only if the cumulative size of the ``plan caches`` for all +collections is lower than 0.5 GB. When the cumulative size of the +``plan caches`` for all collections exceeds this threshold, additional +``plan cache`` entries are stored without the following debug +information: + +- :ref:`createdFromQuery ` +- :ref:`cachedPlan ` +- :ref:`creationExecStats ` +- :ref:`candidatePlanScores ` + +The estimated size in bytes of a ``plan cache`` entry is available in +the output of :pipeline:`$planCacheStats`. + .. _query-hash-plan-cache-key: ``queryHash`` and ``planCacheKey`` @@ -148,7 +167,6 @@ Users can also: .. _query-hash: - ``queryHash`` ~~~~~~~~~~~~~ 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/core/replica-set-write-concern.txt b/source/core/replica-set-write-concern.txt index 811c4de96f4..ddada79ba3f 100644 --- a/source/core/replica-set-write-concern.txt +++ b/source/core/replica-set-write-concern.txt @@ -110,21 +110,8 @@ documentation on write concern, see :ref:`write-concern`. Modify Default Write Concern ---------------------------- -.. TODO need to remove most of this section and rewrite what's left. - Post 2.6 though. - -You can modify the default write concern for a replica set by setting -the :rsconf:`settings.getLastErrorDefaults` setting -in the :doc:`replica set configuration -`. The following sequence of commands -creates a configuration that waits for the write operation to complete -on a majority of the voting members before returning: - -.. code-block:: javascript - - cfg = rs.conf() - cfg.settings.getLastErrorDefaults = { w: "majority", wtimeout: 5000 } - rs.reconfig(cfg) +You can modify the default write concern for a replica set by issuing +the :dbcommand:`setDefaultRWConcern` command. If you issue a write operation with a specific write concern, the write operation uses its own write concern instead of the default. diff --git a/source/core/security-client-side-encryption-key-management.txt b/source/core/security-client-side-encryption-key-management.txt index 9ca1e5c7fa6..0b3a3499b51 100644 --- a/source/core/security-client-side-encryption-key-management.txt +++ b/source/core/security-client-side-encryption-key-management.txt @@ -119,7 +119,7 @@ Encryption Key Vault -------------------- The key vault is a collection that stores data encryption keys for use -with client-side field level encryption. data encryption keys are +with client-side field level encryption. Data encryption keys are encrypted using a Customer Master Key (CMK) managed through a supported :ref:`Key Management System (KMS) `. @@ -162,7 +162,7 @@ vault. Applications must have access to both the remote key vault cluster and the connection cluster to perform client-side field level encryption operations. -data encryption keys have the following structure: +Data encryption keys have the following structure: .. code-block:: json 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 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`. diff --git a/source/core/text-search-operators.txt b/source/core/text-search-operators.txt index cb4a88def1d..89c99b6ad96 100644 --- a/source/core/text-search-operators.txt +++ b/source/core/text-search-operators.txt @@ -53,6 +53,8 @@ For more information and examples of text search in the :doc:`/aggregation` framework, see :doc:`/tutorial/text-search-in-aggregation`. +.. include:: /includes/fact-atlas-search-search-stage.rst + .. [#meta-aggregation] .. include:: /includes/fact-meta-operator-disambiguation.rst diff --git a/source/core/transactions-production-consideration.txt b/source/core/transactions-production-consideration.txt index 35d27931a77..0e3dcbc6e88 100644 --- a/source/core/transactions-production-consideration.txt +++ b/source/core/transactions-production-consideration.txt @@ -30,7 +30,7 @@ Availability clusters and incorporates the existing support for multi-document transactions on replica sets. - To use transactions on MongoDB 4.2 deployments(replica sets and + To use transactions on MongoDB 4.2 deployments (replica sets and sharded clusters), clients :red:`must` use MongoDB drivers updated for MongoDB 4.2. @@ -316,7 +316,7 @@ Errors Use of MongoDB 4.0 Drivers ~~~~~~~~~~~~~~~~~~~~~~~~~~ -To use transactions on MongoDB 4.2 deployments(replica sets and sharded +To use transactions on MongoDB 4.2 deployments (replica sets and sharded clusters), clients :red:`must` use MongoDB drivers updated for MongoDB 4.2. diff --git a/source/core/transactions.txt b/source/core/transactions.txt index 2aaec755576..52b2271a7bf 100644 --- a/source/core/transactions.txt +++ b/source/core/transactions.txt @@ -336,7 +336,7 @@ multi-document transactions: clusters and incorporates the existing support for multi-document transactions on replica sets. - To use transactions on MongoDB 4.2 deployments(replica sets and + To use transactions on MongoDB 4.2 deployments (replica sets and sharded clusters), clients :red:`must` use MongoDB drivers updated for MongoDB 4.2. diff --git a/source/faq/replica-sets.txt b/source/faq/replica-sets.txt index a4bba6f8ad6..9b3eb24c1de 100644 --- a/source/faq/replica-sets.txt +++ b/source/faq/replica-sets.txt @@ -107,9 +107,11 @@ times. Can I rename a replica set? --------------------------- -No. +Yes, unsharded replica sets can be renamed. This procedure requires +downtime. -You can use the backup and restore procedure described in the -:doc:`/tutorial/restore-replica-set-from-backup` tutorial to create a -new replica set with the desired name. Downtime may be necessary in -order to ensure parity between the original replica set and the new one. +To learn how to rename your replica set, see +:doc:`/tutorial/rename-unsharded-replica-set`. + +Before renaming a replica set, perform a full +:doc:`backup of your MongoDB deployment `. 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/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/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/includes/changelogs/releases/3.6.23.rst b/source/includes/changelogs/releases/3.6.23.rst new file mode 100644 index 00000000000..f7c3f65cc32 --- /dev/null +++ b/source/includes/changelogs/releases/3.6.23.rst @@ -0,0 +1,21 @@ +.. _3.6.23-changelog: + +3.6.23 Changelog +---------------- + +Query +~~~~~ + +:issue:`SERVER-40361` Reduce memory footprint of plan cache entries + +Internals +~~~~~~~~~ + +- :issue:`SERVER-43973` jsTestName() should return a unique name for each thread in the parallel suite +- :issue:`SERVER-46686` Explain does not respect maxTimeMS +- :issue:`SERVER-50267` Set output limit for 'rawMongoProgramOutput()' +- :issue:`SERVER-52969` Disable Powercyle on non-master branches +- :issue:`SERVER-53992` Remove calls to detect-outliers from performance tasks +- :issue:`SERVER-54134` Ignore newer mongo versions on older branches of setup_multiversion_mongodb.py +- :issue:`TOOLS-2803` [v3.6] Add --config option for password values + 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/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/includes/changelogs/releases/4.0.23.rst b/source/includes/changelogs/releases/4.0.23.rst new file mode 100644 index 00000000000..b755c47c76f --- /dev/null +++ b/source/includes/changelogs/releases/4.0.23.rst @@ -0,0 +1,47 @@ +.. _4.0.23-changelog: + +4.0.23 Changelog +---------------- + +Sharding +~~~~~~~~ + +- :issue:`SERVER-50305` ARS::next() does not respect OperationContext deadline +- :issue:`SERVER-53274` The force-write of the `history` field to all chunks on FCV upgrade from 3.6 to 4.0 is unnecessary + +Replication +~~~~~~~~~~~ + +- :issue:`SERVER-52744` rollback node's lastApplied > sync source's lastApplied in rollback_after_enabling_majority_reads.js +- :issue:`SERVER-53345` Excuse arbiter_new_hostname.js from multiversion tests +- :issue:`SERVER-53459` rollback_all_op_types.js should ensure sync source's lastApplied > rollback node's lastApplied +- :issue:`SERVER-53609` lastCommittedTransaction section causes frequent schema changes that limit FTDC retention + +Query +~~~~~ + +- :issue:`SERVER-40361` Reduce memory footprint of plan cache entries +- :issue:`SERVER-47869` Add diagnostic logging to ClusterCursorManager + +Storage +~~~~~~~ + +- :issue:`SERVER-46876` During the eviction pressure, we should quit the compact operation instead of crashing the process +- :issue:`SERVER-52950` recoverOplogAsStandalone mode must not start oplog truncater thread + +Operations +~~~~~~~~~~ + +:issue:`SERVER-54074` [v4.0] Log start and end of changes to table log settings + +Internals +~~~~~~~~~ + +- :issue:`SERVER-43904` When stepping down, step up doesn't filter out frozen nodes +- :issue:`SERVER-46686` Explain does not respect maxTimeMS +- :issue:`SERVER-46740` establishCursors() must always drain the AsyncRequestsSender::_baton +- :issue:`SERVER-52879` Periodic operation latency spikes every 5 minutes due to closing idle cached WT sessions +- :issue:`SERVER-53234` jstests/core/profile2.js fails when background operations are run against test database +- :issue:`SERVER-54091` Update assertion messages for dbhash check run by resmoke.py +- :issue:`SERVER-54134` Ignore newer mongo versions on older branches of setup_multiversion_mongodb.py + 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..f04ea06eeab --- /dev/null +++ b/source/includes/changelogs/releases/4.2.11.rst @@ -0,0 +1,88 @@ +.. _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-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 + +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-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/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/includes/changelogs/releases/4.2.13.rst b/source/includes/changelogs/releases/4.2.13.rst new file mode 100644 index 00000000000..95959566eb7 --- /dev/null +++ b/source/includes/changelogs/releases/4.2.13.rst @@ -0,0 +1,89 @@ +.. _4.2.13-changelog: + +4.2.13 Changelog +---------------- + +Sharding +~~~~~~~~ + +- :issue:`SERVER-53236` Disable merge_with_move_primary.js from running on the sharding_csrs_continuous_config_stepdown suite +- :issue:`SERVER-53651` Just search for user-issued profiled aggregation in read_pref_cmd.js +- :issue:`SERVER-54014` Define a reasonable maxTimeMsOverride for the checkOID requests + +Replication +~~~~~~~~~~~ + +- :issue:`SERVER-51163` Mark nodes returning InvalidReplicaSetConfig in heartbeats as down +- :issue:`SERVER-53248` call awaitLastOpCommitted before committing transaction in retryable_prepared_commit_transaction_after_failover.js +- :issue:`SERVER-53609` lastCommittedTransaction section causes frequent schema changes that limit FTDC retention +- :issue:`SERVER-53666` curSecondary in rollback test fixture not guaranteed to be in SECONDARY state after restart +- :issue:`SERVER-54339` Prevent spontaneous elections in rollback_crud_op_sequences.js +- :issue:`SERVER-54648` Add correct log verbosity to disallow_adding_initialized_node2.js + +Query +~~~~~ + +- :issue:`SERVER-47869` Add diagnostic logging to ClusterCursorManager +- :issue:`SERVER-48442` Fix change_streams.js to test events in any order +- :issue:`SERVER-50073` Error message when creating a mixed hashed/not hashed index does not state the problem +- :issue:`SERVER-54660` Make jstests/sharding/kill_pinned_cursor.js more robust + +Storage +~~~~~~~ + +- :issue:`SERVER-46876` During the eviction pressure, we should quit the compact operation instead of crashing the process +- :issue:`SERVER-54760` (4.2) Ghost timestamps can cause concurrent causal snapshot reads to not read their own writes + +Build and Packaging +~~~~~~~~~~~~~~~~~~~ + +- :issue:`SERVER-52705` Rebuilding mongodb according to building.md failed because python3 is an alias/link (led to ModuleNotFoundError) +- :issue:`SERVER-54058` Update Debian 10 AMI for package testing +- :issue:`SERVER-54255` Update RHEL 7 AMI for package testing +- :issue:`SERVER-54858` Update Amazon Linux AMI for package testing + +Internals +~~~~~~~~~ + +- :issue:`SERVER-35649` Nodes removed due to isSelf failure should re-attempt to find themselves +- :issue:`SERVER-43904` When stepping down, step up doesn't filter out frozen nodes +- :issue:`SERVER-44132` DataBuilder move assignment computes size incorrectly +- :issue:`SERVER-45836` Provide more LDAP details (like server IP) at default log level +- :issue:`SERVER-46686` Explain does not respect maxTimeMS +- :issue:`SERVER-46740` establishCursors() must always drain the AsyncRequestsSender::_baton +- :issue:`SERVER-47030` Fix date_time_support code to not produce exceptions +- :issue:`SERVER-49222` ARM64 support on Amazon Linux 2 +- :issue:`SERVER-50592` Update mypy pip requirement +- :issue:`SERVER-51038` resmoke.py can't be run on python 3.8 +- :issue:`SERVER-51722` Ensure that MongoDB builds with ARM LSE atomics +- :issue:`SERVER-52884` Remove race in reconstruct_prepared_transactions_initial_sync.js +- :issue:`SERVER-53196` Fail to generate tasks if a large distro is specified but not available +- :issue:`SERVER-53394` Make ShardingTaskExecutorPoolReplicaSetMatching default to disabled for MongoD +- :issue:`SERVER-53579` python's dev-requirements.txt is incompatible with pip 20.3.3 +- :issue:`SERVER-53612` StepDown hangs until timeout if all nodes are caught up but none is immediately electable +- :issue:`SERVER-53717` Dynamically split large concurrency tasks +- :issue:`SERVER-53780` Fix missing quote in test parameters +- :issue:`SERVER-53831` Force SpiderMonkey to garbage collect in ReplSetTest.checkOplogs +- :issue:`SERVER-53836` Add multiversion-related expansions on Enterprise Ubuntu 16.04 (with {taskExecutorPoolSize=4}) build variant +- :issue:`SERVER-53932` Multikey write during recovery of prepared transaction could use commit timestamp < stable timestamp +- :issue:`SERVER-53992` Remove calls to detect-outliers from performance tasks +- :issue:`SERVER-54091` Update assertion messages for dbhash check run by resmoke.py +- :issue:`SERVER-54134` Ignore newer mongo versions on older branches of setup_multiversion_mongodb.py +- :issue:`SERVER-54139` Remove CURL share support from HTTP curl client +- :issue:`SERVER-54278` Add feature flag to disable Opportunistic Reads by default +- :issue:`SERVER-54366` Wait for node to start stepdown before killing shutdown operation in force_shutdown_primary.js +- :issue:`SERVER-54369` Update Jasper gRPC to latest version +- :issue:`SERVER-54458` updated vendored scons to use uuid for cache tmpfiles +- :issue:`SERVER-54484` resmoke/util/archival.py relies on deprecated and now removed thread.isAlive +- :issue:`SERVER-54505` Fix logic for ignored large distro build variants in 4.2 +- :issue:`SERVER-54684` Decreased JS performance on arm64 due to mising init function +- :issue:`SERVER-54685` wrong definition of MONGO_YIELD_CORE_FOR_SMT for arm64 +- :issue:`SERVER-54733` Enterprise Ubuntu 16.04 arm64 aggregation_multiversion_fuzzer failures +- :issue:`WT-6309` Add support for start/stop arguments to wt printlog command +- :issue:`WT-6430` Move WT_CONN_SERVER flags into their own field +- :issue:`WT-6844` Make force stop durable +- :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-7028` Sweep thread shouldn't lock during checkpoint gathering handles +- :issue:`WT-7104` Redact user data from printlog output + diff --git a/source/includes/changelogs/releases/4.4.2.rst b/source/includes/changelogs/releases/4.4.2.rst index 865de9b3331..ad926846c36 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 @@ -104,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 @@ -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,13 +184,14 @@ 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 - :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) @@ -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 @@ -246,4 +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 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..3e9203adee4 --- /dev/null +++ b/source/includes/changelogs/releases/4.4.3.rst @@ -0,0 +1,160 @@ +.. _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-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-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 +~~~~~ + +- :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 + +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-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 + +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-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 +- :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-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 +- :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 +- :issue:`SERVER-52817` Update YCSB version in sys-perf.yml modules +- :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-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-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:`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 +- :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-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 +- :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/includes/changelogs/releases/4.4.4.rst b/source/includes/changelogs/releases/4.4.4.rst new file mode 100644 index 00000000000..ed9b5e564ba --- /dev/null +++ b/source/includes/changelogs/releases/4.4.4.rst @@ -0,0 +1,170 @@ +.. _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-46740` establishCursors() must always drain the AsyncRequestsSender::_baton +- :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-4649` Updating build system to allow for different C++ compilers +- :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-5545` Add fixed-length column store support to RTS for handling updates present in the update list +- :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-6354` Increase wt utility coverage with printlog, downgrade, upgrade tests +- :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-6800` Insert one key per transaction to make test_txn24 pass on macOS +- :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-6947` Auto generate test coverage documentation from test tags +- :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-7004` Architecture guide page for checkpoints +- :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-7039` Creating test configuration framework using the WiredTiger configuration API +- :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-7102` Migrate full and incremental backup test functionalities into wtbackup class +- :issue:`WT-7104` Redact user data from printlog output +- :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-7116` Improve the compatibility test to test the 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 +- :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 +- :issue:`WT-7137` Update assert to consider deleted HS values when checking for duplicate inserts +- :issue:`WT-7138` Do not perform fast truncate on pages with prepared updates +- :issue:`WT-7159` Always write on-disk update as a full update to history store + diff --git a/source/includes/deprecated-db.printSlaveReplicationInfo.rst b/source/includes/deprecated-db.printSlaveReplicationInfo.rst new file mode 100644 index 00000000000..6e01fb2c770 --- /dev/null +++ b/source/includes/deprecated-db.printSlaveReplicationInfo.rst @@ -0,0 +1,2 @@ +*Deprecated since version 4.4.1:* Use +:method:`db.printSecondaryReplicationInfo()` instead. \ No newline at end of file diff --git a/source/includes/deprecated-rs.printSlaveReplicationInfo.rst b/source/includes/deprecated-rs.printSlaveReplicationInfo.rst new file mode 100644 index 00000000000..e1c91bc9a51 --- /dev/null +++ b/source/includes/deprecated-rs.printSlaveReplicationInfo.rst @@ -0,0 +1,2 @@ +*Deprecated since version 4.4.1:* Use +:method:`rs.printSecondaryReplicationInfo()` instead. \ No newline at end of file diff --git a/source/includes/deprecation-uniqueDocs.rst b/source/includes/deprecation-uniqueDocs.rst index a0e52f9e9ac..83eb09a45b8 100644 --- a/source/includes/deprecation-uniqueDocs.rst +++ b/source/includes/deprecation-uniqueDocs.rst @@ -1,3 +1,4 @@ .. deprecated:: 2.6 + Geospatial queries no longer return duplicate results. The :query:`$uniqueDocs` operator has no impact on results. 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/extracts-4.2-changes.yaml b/source/includes/extracts-4.2-changes.yaml index 276c6df3c74..4c52f5ab9d9 100644 --- a/source/includes/extracts-4.2-changes.yaml +++ b/source/includes/extracts-4.2-changes.yaml @@ -704,9 +704,15 @@ content: | --- ref: 4.2-changes-drivers-retryWrites-default content: | - The official MongoDB 3.6 and 4.0-compatible drivers required including the - :urioption:`retryWrites=true ` option in the :ref:`connection - string ` to enable retryable writes for that connection. + MongoDB 3.6 introduced support for :ref:`retryable-writes`, but most + official MongoDB 3.6 and 4.0-compatible drivers disabled this feature + by default. For such drivers, retryable writes could be enabled per + connection by including the :urioption:`retryWrites=true + ` option in the :ref:`connection string ` + for that connection. Refer to the `MongoDB Driver Documentation + `_ to determine + the correct default state of :urioption:`retryWrites` for your + specific driver and version. The official MongoDB 4.2-compatible drivers enable :ref:`retryable-writes` by default. Applications upgrading to the 4.2-compatible drivers that require @@ -777,15 +783,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/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/includes/extracts-agg-operators.yaml b/source/includes/extracts-agg-operators.yaml index 846bce4eeef..0a57d52a85b 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. @@ -145,6 +157,9 @@ content: | :header-rows: 1 :widths: 20 80 + * - Name + - Description + * - :expression:`$arrayElemAt` - Returns the element at the specified array index. @@ -233,6 +248,9 @@ content: | :header-rows: 1 :widths: 20 80 + * - Name + - Description + * - :expression:`$cmp` - Returns ``0`` if the two values are equivalent, ``1`` if the @@ -478,6 +496,31 @@ 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:`$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 content: | @@ -768,6 +811,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: | @@ -803,7 +847,6 @@ content: | * - Name - Description - * - :expression:`$convert` - Converts a value to a specified type. @@ -879,7 +922,6 @@ content: | ref: agg-operators-accumulators-group content: | - .. list-table:: :header-rows: 1 :widths: 20 80 diff --git a/source/includes/extracts-agg-stages.yaml b/source/includes/extracts-agg-stages.yaml index 1d3fc610205..47dfb4db4ab 100644 --- a/source/includes/extracts-agg-stages.yaml +++ b/source/includes/extracts-agg-stages.yaml @@ -165,6 +165,17 @@ content: | - Randomly selects the specified number of documents from its input. + * - :pipeline:`$search` + + - Performs a full-text search of the field or fields in an + :atlas:`Atlas ` + collection. + + .. note:: + + ``$search`` is only available for MongoDB Atlas clusters, + and is not available for self-managed deployments. + * - :pipeline:`$set` - Adds new fields to documents. Similar to diff --git a/source/includes/extracts-client-side-field-level-encryption.yaml b/source/includes/extracts-client-side-field-level-encryption.yaml index cb00deb2ee7..4c01c42af0c 100644 --- a/source/includes/extracts-client-side-field-level-encryption.yaml +++ b/source/includes/extracts-client-side-field-level-encryption.yaml @@ -119,8 +119,8 @@ content: | .. important:: - For AWS KMS support, use the 4.2.2 :binary:`~bin.mongo` shell. The - 4.2.0 and 4.2.1 :binary:`~bin.mongo` shell does not support the AWS - KMS service due to an unexpected change in the KMS response object. - See :issue:`SERVER-44721` for more information on the issue. -... \ No newline at end of file + For AWS KMS support, use the 4.2.2 or later :binary:`~bin.mongo` + shell. The 4.2.0 and 4.2.1 :binary:`~bin.mongo` shell does not + support the AWS KMS service due to an unexpected change in the KMS + response object. See :issue:`SERVER-44721` for more information. +... diff --git a/source/includes/extracts-concurrency-consistency-recency.yaml b/source/includes/extracts-concurrency-consistency-recency.yaml index 4c560b88dfa..8eba8848f59 100644 --- a/source/includes/extracts-concurrency-consistency-recency.yaml +++ b/source/includes/extracts-concurrency-consistency-recency.yaml @@ -82,12 +82,12 @@ content: | indexed field on the index used by the query, then the cursor could return the same document more than once. - If your collection has a field or fields that are - never modified, you can use a *unique* index on this field or these - fields so that the query will return each document no more than - once. Query with :method:`~cursor.hint()` to explicitly force the - query to use that index. - + Queries that use :ref:`unique indexes ` can, in + some cases, return duplicate values. If a cursor using a unique index + interleaves with a delete and insert of documents sharing the same + unique value, the cursor may return the same unique value twice from + different documents. + --- ref: lock-general content: | diff --git a/source/includes/extracts-install-mongodb-manually.yaml b/source/includes/extracts-install-mongodb-manually.yaml index 2887da05237..adfead11edc 100644 --- a/source/includes/extracts-install-mongodb-manually.yaml +++ b/source/includes/extracts-install-mongodb-manually.yaml @@ -28,13 +28,13 @@ ref: install-mongodb-enterprise-manually-debian-10 content: | .. code-block:: sh - sudo apt-get install libcurl4 libgssapi-krb5-2 libldap-2.4-2 libwrap0 libsasl2-2 snmp openssl liblzma5 + sudo apt-get install libcurl4 libgssapi-krb5-2 libldap-2.4-2 libwrap0 libsasl2-2 libsasl2-modules libsasl2-modules-gssapi-mit snmp openssl liblzma5 --- ref: install-mongodb-enterprise-manually-debian-9 content: | .. code-block:: sh - sudo apt-get install libcurl3 libgssapi-krb5-2 libldap-2.4-2 libwrap0 libsasl2-2 snmp openssl liblzma5 + sudo apt-get install libcurl3 libgssapi-krb5-2 libldap-2.4-2 libwrap0 libsasl2-2 libsasl2-modules libsasl2-modules-gssapi-mit snmp openssl liblzma5 --- ref: install-mongodb-community-manually-debian-10 content: | @@ -54,19 +54,19 @@ ref: install-mongodb-enterprise-manually-ubuntu-20 content: | .. code-block:: sh - sudo apt-get install libcurl4 libgssapi-krb5-2 libldap-2.4-2 libwrap0 libsasl2-2 snmp openssl liblzma5 + sudo apt-get install libcurl4 libgssapi-krb5-2 libldap-2.4-2 libwrap0 libsasl2-2 libsasl2-modules libsasl2-modules-gssapi-mit snmp openssl liblzma5 --- ref: install-mongodb-enterprise-manually-ubuntu-18 content: | .. code-block:: sh - sudo apt-get install libcurl4 libgssapi-krb5-2 libldap-2.4-2 libwrap0 libsasl2-2 snmp openssl liblzma5 + sudo apt-get install libcurl4 libgssapi-krb5-2 libldap-2.4-2 libwrap0 libsasl2-2 libsasl2-modules libsasl2-modules-gssapi-mit snmp openssl liblzma5 --- ref: install-mongodb-enterprise-manually-ubuntu-16 content: | .. code-block:: sh - sudo apt-get install libcurl3 libgssapi-krb5-2 libldap-2.4-2 libwrap0 libsasl2-2 snmp openssl liblzma5 + sudo apt-get install libcurl3 libgssapi-krb5-2 libldap-2.4-2 libwrap0 libsasl2-2 libsasl2-modules libsasl2-modules-gssapi-mit snmp openssl liblzma5 --- ref: install-mongodb-community-manually-ubuntu-20 content: | 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/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. " diff --git a/source/includes/extracts-replSetReconfig.yaml b/source/includes/extracts-replSetReconfig.yaml index c8fd37a000c..745eabc7823 100644 --- a/source/includes/extracts-replSetReconfig.yaml +++ b/source/includes/extracts-replSetReconfig.yaml @@ -30,10 +30,10 @@ content: | Typically, the current configuration has already been installed on a majority of voting replica set members. However, the majority committed writes in the previous configuration may not all be - committed in the current configuration. - :rsconf:`Delayed ` members *or* members - that are :method:`lagging behind ` - the primary can increase the time spent in this phase. + committed in the current configuration. :rsconf:`Delayed + ` members *or* members that are + :method:`lagging behind ` the + primary can increase the time spent in this phase. If the operation was issued with a |reconfig-maxTimeMS| limit *and* diff --git a/source/includes/extracts-server-status-projection-base.yaml b/source/includes/extracts-server-status-projection-base.yaml index aae7dc11d22..855bfdf48d8 100644 --- a/source/includes/extracts-server-status-projection-base.yaml +++ b/source/includes/extracts-server-status-projection-base.yaml @@ -15,7 +15,15 @@ content: | ref: _serverStatus-output-changes content: | - - Starting in MongoDB 5.0, {{operationName}}: + - 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/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/fact-atlas-search-languages.rst b/source/includes/fact-atlas-search-languages.rst new file mode 100644 index 00000000000..f0aae591ffd --- /dev/null +++ b/source/includes/fact-atlas-search-languages.rst @@ -0,0 +1,4 @@ +For data hosted on MongoDB Atlas, :atlas:`Atlas Search ` +provides support for additional languages. To see the complete list of +languages supported by Atlas Search, see the :atlas:`Atlas Search +Language Analyzers `. diff --git a/source/includes/fact-atlas-search-search-stage.rst b/source/includes/fact-atlas-search-search-stage.rst new file mode 100644 index 00000000000..5ed329bde0d --- /dev/null +++ b/source/includes/fact-atlas-search-search-stage.rst @@ -0,0 +1,3 @@ +For data hosted on MongoDB Atlas, :atlas:`Atlas Search ` +provides the :atlas:`$search ` +aggregation stage to perform full-text search on your collections. 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 `. 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/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/fact-platform-arm64.rst b/source/includes/fact-platform-arm64.rst index aab6c93a630..4a98af5dd00 100644 --- a/source/includes/fact-platform-arm64.rst +++ b/source/includes/fact-platform-arm64.rst @@ -9,6 +9,18 @@ - 4.0 Community & Enterprise - 3.6 Community & Enterprise + * - Amazon Linux 2 + - 4.4.4+ + - 4.2.13+ + - + - + + * - RHEL/CentOS 8 + - 4.4.4+ + - + - + - + * - Ubuntu 20.04 - |checkmark| - diff --git a/source/includes/fact-platform-support-amazon.rst b/source/includes/fact-platform-support-amazon.rst index 0ee45653360..a8d5156d62e 100644 --- a/source/includes/fact-platform-support-amazon.rst +++ b/source/includes/fact-platform-support-amazon.rst @@ -11,4 +11,8 @@ MongoDB {+version+} Community Edition supports the following MongoDB only supports the 64-bit versions of this platform. +MongoDB {+version+} Community Edition on Amazon Linux also supports the +:ref:`ARM64 ` architecture on +select platforms. + See :ref:`prod-notes-supported-platforms` for more information. diff --git a/source/includes/fact-platform-support-enterprise-amazon.rst b/source/includes/fact-platform-support-enterprise-amazon.rst index bbedc80fcd0..0b64407466e 100644 --- a/source/includes/fact-platform-support-enterprise-amazon.rst +++ b/source/includes/fact-platform-support-enterprise-amazon.rst @@ -11,4 +11,8 @@ MongoDB {+version+} Enterprise Edition supports the following MongoDB only supports the 64-bit versions of this platform. +MongoDB {+version+} Enterprise Edition on Amazon Linux also supports the +:ref:`ARM64 ` architecture on +select platforms. + See :ref:`prod-notes-supported-platforms` for more information. diff --git a/source/includes/fact-platform-support-enterprise-red-hat.rst b/source/includes/fact-platform-support-enterprise-red-hat.rst index a399df31c8d..8b1dcfd04d0 100644 --- a/source/includes/fact-platform-support-enterprise-red-hat.rst +++ b/source/includes/fact-platform-support-enterprise-red-hat.rst @@ -19,7 +19,8 @@ MongoDB only supports the 64-bit versions of these platforms. MongoDB {+version+} Enterprise Edition on :abbr:`RHEL (Red Hat Enterprise Linux)` / CentOS / Oracle also supports -the :ref:`PPC64LE ` and +the :ref:`ARM64 `, +:ref:`PPC64LE `, and :ref:`s390x ` architectures on select platforms. diff --git a/source/includes/fact-platform-support-red-hat.rst b/source/includes/fact-platform-support-red-hat.rst index 6b5acffcb1f..0675d573c85 100644 --- a/source/includes/fact-platform-support-red-hat.rst +++ b/source/includes/fact-platform-support-red-hat.rst @@ -13,7 +13,8 @@ MongoDB only supports the 64-bit versions of these platforms. MongoDB {+version+} Community Edition on :abbr:`RHEL (Red Hat Enterprise Linux)` / CentOS / Oracle also supports -the :ref:`s390x ` architecture on +the :ref:`ARM64 ` and +:ref:`s390x ` architectures on select platforms. See :ref:`prod-notes-supported-platforms` for more information. diff --git a/source/includes/fact-platform-x86_64.rst b/source/includes/fact-platform-x86_64.rst index a779f275acd..9640b8821bd 100644 --- a/source/includes/fact-platform-x86_64.rst +++ b/source/includes/fact-platform-x86_64.rst @@ -36,7 +36,7 @@ - |checkmark| - |checkmark| - |checkmark| - - + - 3.6.22+ * - Amazon Linux 2013.03 and later - 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. 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 <`__) supports +multiple full-text search indexes on a single collection. To learn more, +see the :atlas:`Atlas Search documentation `. 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/includes/index-tutorials-considerations.rst b/source/includes/index-tutorials-considerations.rst index 3e822eab7cf..d03d89b5a5e 100644 --- a/source/includes/index-tutorials-considerations.rst +++ b/source/includes/index-tutorials-considerations.rst @@ -5,5 +5,5 @@ more information on the index build process, see :ref:`index-operations-replicated-build` section. Some drivers may specify indexes, using ``NumberLong(1)`` rather than -``1`` as the specification. This does not have any affect on the +``1`` as the specification. This does not have any effect on the resulting index. 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/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/includes/log-changes-to-database-profiler.rst b/source/includes/log-changes-to-database-profiler.rst new file mode 100644 index 00000000000..efc24b18674 --- /dev/null +++ b/source/includes/log-changes-to-database-profiler.rst @@ -0,0 +1,5 @@ +Starting in MongoDB 4.4.2 (also available in 4.2.12 and 4.0.22), changes +made to the :ref:`database profiler ` ``level``, +``slowms``, ``sampleRate``, or ``filter`` using the :dbcommand:`profile` +command or :method:`db.setProfilingLevel()` wrapper method are recorded +in the :option:`log file `. \ No newline at end of file diff --git a/source/includes/note-method-does-not-return-json.rst b/source/includes/note-method-does-not-return-json.rst index 065ba745cf6..137316a26e1 100644 --- a/source/includes/note-method-does-not-return-json.rst +++ b/source/includes/note-method-does-not-return-json.rst @@ -1,5 +1,5 @@ .. note:: - The |method| in the :binary:`~bin.mongo` shell does **not** return - :term:`JSON`. Use |method| for manual inspection, and + The |method| method run in the :binary:`~bin.mongo` shell does + **not** return :term:`JSON`. Use |method| for manual inspection, and |method-alternative| in scripts. diff --git a/source/includes/output-printSecondaryReplicationInfo.rst b/source/includes/output-printSecondaryReplicationInfo.rst new file mode 100644 index 00000000000..f1b25a4ec96 --- /dev/null +++ b/source/includes/output-printSecondaryReplicationInfo.rst @@ -0,0 +1,32 @@ +Example |method| output when run on a replica set with two secondary +members: + +.. code-block:: javascript + + source: m1.example.net:27002 + syncedTo: Mon Mar 01 2021 16:30:50 GMT-0800 (PST) + 0 secs (0 hrs) behind the primary + source: m2.example.net:27003 + syncedTo: Mon Mar 01 2021 16:30:50 GMT-0800 (PST) + 0 secs (0 hrs) behind the primary + +.. include:: /includes/note-method-does-not-return-json.rst + +A :ref:`delayed member ` may show as ``0`` +seconds behind the primary when the inactivity period on the primary is +greater than the :rsconf:`members[n].slaveDelay` value. + +A member may show a negative time value behind the primary when |method| +is run. This is expected if |method| is run after a secondary replicates +a write that follows a period of inactivity, but before the secondary +receives a heartbeat from the primary with the latest :term:`optime +`. + +.. note:: + + The lag reported by secondaries may not be representative of cluster + health. Negative values do not indicate that the secondary is ahead + of the primary. + + To obtain the most current status for your replica set, run |method| + on the primary. 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 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 +... diff --git a/source/includes/steps-monitor-with-snmp.yaml b/source/includes/steps-monitor-with-snmp.yaml index eb8d3aafd4a..c31be1fc6fb 100644 --- a/source/includes/steps-monitor-with-snmp.yaml +++ b/source/includes/steps-monitor-with-snmp.yaml @@ -172,13 +172,13 @@ content: | .. code-block:: sh - sudo systemctl start mongod + sudo systemctl start snmpd - For Linux systems using **System V init** (``service`` command): .. code-block:: sh - sudo service mongod start + sudo service snmpd start --- title: Start MongoDB. stepnum: 4 diff --git a/source/includes/steps-rename-unsharded-replica-set.yaml b/source/includes/steps-rename-unsharded-replica-set.yaml new file mode 100644 index 00000000000..aa747a968a5 --- /dev/null +++ b/source/includes/steps-rename-unsharded-replica-set.yaml @@ -0,0 +1,64 @@ +title: Shut down replica set members. +level: 4 +ref: shutdown-replica-set +content: | + Follow the procedure in :ref:`Stop a Replica Set ` + to confirm that replica set members are + :ref:`shut down `. + + .. warning:: + + This step requires downtime as all replica members will need to be + shut down. + +--- +title: Rename the replica set. +level: 4 +ref: rename-the-replica-set +content: | + Perform the following steps for each replica set member: + + a. Update the replica set name. + + - If using a :ref:`configuration file `, set + :setting:`replication.replSetName ` + to the new name. + + - If using the :binary:`~bin.mongod` startup command with + the :option:`--replSet ` option, note down the + new replica set name for use in step f. + + #. Start the replica set member on a different port without the + :option:`--replSet ` option. + + #. Connect to the replica set member. + + #. Update the replica set name in the :ref:`local database + ` with the following commands: + + .. code-block:: javascript + + /* Set `newId` to the new replica set name */ + var newId = '' + + var doc = db.getSiblingDB("local").system.replset.findOne() + var oldId = doc._id + doc._id = newId + db.getSiblingDB("local").system.replset.save(doc) + db.getSiblingDB("local").system.replset.remove({_id: oldId}) + + #. :ref:`Shut down ` the replica set + member. + + #. Start the replica set member on its original port. + + - If using a configuration file, ensure that + :setting:`replication.replSetName ` is + set to the new replica set name. + + - If using the :binary:`~bin.mongod` startup command with + the :option:`--replSet ` option, pass the new + name of the replica set to the + :option:`--replSet ` option. + +... 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 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/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()`. +... 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 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: diff --git a/source/meta/aggregation-quick-reference.txt b/source/meta/aggregation-quick-reference.txt index c472c467413..dbd20acad67 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -356,6 +361,7 @@ Index of Expression Operators - :expression:`$cond` - :expression:`$convert` - :expression:`$cos` + - :expression:`$cosh` - :expression:`$dateFromParts` - :expression:`$dateFromString` - :expression:`$dateToParts` @@ -429,6 +435,7 @@ Index of Expression Operators - :expression:`$setIsSubset` - :expression:`$setUnion` - :expression:`$sin` + - :expression:`$sinh` - :expression:`$size` - :expression:`$slice` - :expression:`$split` @@ -445,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/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/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/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. 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 diff --git a/source/reference/command/aggregate.txt b/source/reference/command/aggregate.txt index 7280361eff2..db9db6ec696 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:: @@ -99,7 +98,9 @@ arguments: - * - ``allowDiskUse`` + * - .. _aggregate-cmd-allowDiskUse: + + ``allowDiskUse`` - boolean @@ -149,7 +150,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. @@ -226,24 +227,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 +537,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/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 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/findAndModify.txt b/source/reference/command/findAndModify.txt index 8fad4fdf55e..f4469331a94 100644 --- a/source/reference/command/findAndModify.txt +++ b/source/reference/command/findAndModify.txt @@ -78,7 +78,9 @@ Definition - * - ``sort`` + * - .. _findandmodify-command-consistent-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-consistency.rst + + See :ref:`sort-cursor-consistent-sorting` for more information. @@ -159,7 +165,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/getnonce.txt b/source/reference/command/getnonce.txt index bb4f094dfa5..c7a32626361 100644 --- a/source/reference/command/getnonce.txt +++ b/source/reference/command/getnonce.txt @@ -12,11 +12,16 @@ getnonce .. dbcommand:: getnonce - Client libraries use :dbcommand:`getnonce` to generate a one-time + .. deprecated:: 4.0 + + Client libraries use :dbcommand:`getnonce` to generate a one-time password for authentication. + + Applications should not invoke :dbcommand:`getnonce` directly. - .. slave-ok + This command will be removed in a future release. + .. slave-ok Behavior -------- 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/killAllSessionsByPattern.txt b/source/reference/command/killAllSessionsByPattern.txt index 24888f30de6..77c5f2ff921 100644 --- a/source/reference/command/killAllSessionsByPattern.txt +++ b/source/reference/command/killAllSessionsByPattern.txt @@ -86,7 +86,7 @@ Access Control -------------- If the deployment enforces authentication/authorization, you must have -the :authaction:`killAnySession` to run the +the :authaction:`killAnySession` privilege action to run the :dbcommand:`killAllSessionsByPattern` command. For patterns that include ``users`` or ``roles``, you must also have @@ -95,7 +95,7 @@ resource. .. note:: - Users can kill their own sessions even without + Users can kill their own sessions even without the :authaction:`killAnySession` privilege action. Examples 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/logRotate.txt b/source/reference/command/logRotate.txt index b0919a0aadd..553cecb59e6 100644 --- a/source/reference/command/logRotate.txt +++ b/source/reference/command/logRotate.txt @@ -16,17 +16,18 @@ Definition .. dbcommand:: logRotate The :dbcommand:`logRotate` command is an administrative command that - allows you to rotate - the MongoDB logs to prevent a single logfile from consuming too - much disk space. + allows you to rotate the MongoDB logs to prevent a single logfile + from consuming too much disk space. - You must issue the - :dbcommand:`logRotate` - command against the :term:`admin database` in the form: + If :doc:`auditing ` is enabled, the + :dbcommand:`logRotate` command also rotates the audit log. + + You must issue the :dbcommand:`logRotate` command against the + :term:`admin database` in the form: .. code-block:: javascript - { logRotate: 1 } + { logRotate: 1 } :dbcommand:`logRotate` takes an optional ``comment`` parameter which may be of any data type. @@ -38,12 +39,14 @@ Definition You may also rotate the logs by sending a ``SIGUSR1`` signal to the :binary:`~bin.mongod` process. - If your :binary:`~bin.mongod` has a process ID of 2200, here's how to - send the signal on Linux: + + For example, if a running :binary:`~bin.mongod` instance has a + process ID (PID) of ``2200``, the following command rotates the log + file for that instance on Linux: .. code-block:: sh - kill -SIGUSR1 2200 + kill -SIGUSR1 2200 Behavior -------- 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/command/profile.txt b/source/reference/command/profile.txt index a2a5b0831c0..1f5f6f0ac64 100644 --- a/source/reference/command/profile.txt +++ b/source/reference/command/profile.txt @@ -15,28 +15,48 @@ 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 a :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. + + .. include:: /includes/log-changes-to-database-profiler.rst + + 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 +69,8 @@ Definition { profile: , slowms: , - sampleRate: + sampleRate: , + filter: } .. _slowms-threshold-option: @@ -111,10 +132,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 +178,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/command/serverStatus.txt b/source/reference/command/serverStatus.txt index 5dc40b71af3..1455145283e 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 ~~~~~~~~~~~ @@ -4001,8 +4006,8 @@ metrics "num" : , "totalMillis" : }, - "notMasterLegacyUnacknowledgedWrites" : , - "notMasterUnacknowledgedWrites" : , + "notPrimaryUnacknowledgedWrites" : , + "notPrimaryLegacyUnacknowledgedWrites" : , "oplogGetMoresProcessed" : { "num" : , "totalMillis" : @@ -4394,20 +4399,26 @@ 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.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 diff --git a/source/reference/command/shardCollection.txt b/source/reference/command/shardCollection.txt index 66b09fabd77..d4594f82ba1 100644 --- a/source/reference/command/shardCollection.txt +++ b/source/reference/command/shardCollection.txt @@ -101,11 +101,11 @@ Definition - integer - - Specifies the number of chunks to create - initially when sharding an *empty* collection with a + - Specifies the initial number of chunks to create across all shards in + the cluster when sharding an *empty* collection with a :ref:`hashed shard key `. MongoDB will then create and balance chunks across the cluster. The - ``numInitialChunks`` must be less than ``8192`` per shard. + ``numInitialChunks`` must result in less than ``8192`` per shard. If the collection is not empty or the shard key does not contain a hashed field, the operation returns an error. 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. diff --git a/source/reference/configuration-options.txt b/source/reference/configuration-options.txt index 6d75edde3ce..b26f73688d6 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 ~~~~~~~~~~~ @@ -224,19 +214,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 - :setting:`systemLog.quiet` is **not** recommended for production systems as it may make - tracking problems during particular connections much more difficult. + 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.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. @@ -292,6 +287,12 @@ Core Options If you specify ``reopen``, you must also set :setting:`systemLog.logAppend` to ``true``. + If :doc:`auditing ` is enabled, the + :dbcommand:`logRotate` command also rotates the audit log according + to the above parameters. For example, if + :setting:`systemLog.logRotate` is set to ``rename``, the audit log + will also be renamed. + .. setting:: systemLog.destination @@ -1644,7 +1645,9 @@ Core Options *Type*: boolean - .. deprecated:: 2.6 Use :setting:`net.tls.mode: requireTLS ` instead. + .. deprecated:: 2.6 + + Use :setting:`net.tls.mode: requireTLS ` instead. Enable or disable TLS/SSL for :binary:`~bin.mongos` or :binary:`~bin.mongod`. @@ -1660,7 +1663,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.mode` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.mode` instead. Enables TLS/SSL or mixed TLS/SSL used for all network connections. The argument to the :setting:`net.ssl.mode` setting can be one of the following: @@ -1701,7 +1706,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.certificateKeyFile` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.certificateKeyFile` instead. The :file:`.pem` file that contains both the TLS/SSL certificate and key. @@ -1735,7 +1742,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.certificateKeyFilePassword` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.certificateKeyFilePassword` instead. The password to de-crypt the certificate-key file (i.e. :setting:`~net.ssl.PEMKeyFile`). Use the @@ -1769,7 +1778,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.certificateSelector` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.certificateSelector` instead. .. versionadded:: 4.0 @@ -1811,7 +1822,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.clusterCertificateSelector` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.clusterCertificateSelector` instead. .. versionadded:: 4.0 @@ -1852,7 +1865,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.clusterFile` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.clusterFile` instead. The :file:`.pem` file that contains the x.509 certificate-key file for :ref:`membership authentication ` @@ -1888,7 +1903,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.clusterPassword` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.clusterPassword` instead. The password to de-crypt the x.509 certificate-key file specified with ``--sslClusterFile``. Use the :setting:`net.ssl.clusterPassword` @@ -1922,7 +1939,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.CAFile` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.CAFile` instead. The :file:`.pem` file that contains the root certificate chain from the Certificate Authority. Specify the file name of the @@ -1944,7 +1963,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.clusterCAFile` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.clusterCAFile` instead. The :file:`.pem` file that contains the root certificate chain from the Certificate Authority used to validate the certificate presented @@ -1986,7 +2007,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.CRLFile` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.CRLFile` instead. The :file:`.pem` file that contains the Certificate Revocation List. Specify the file name of the :file:`.pem` file using relative or @@ -2015,7 +2038,10 @@ Core Options *Type*: boolean - .. deprecated:: 4.2 Use :setting:`net.tls.allowConnectionsWithoutCertificates` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.allowConnectionsWithoutCertificates` + instead. For clients that do not present certificates, :binary:`~bin.mongos` or :binary:`~bin.mongod` bypasses TLS/SSL certificate validation when establishing the connection. @@ -2035,7 +2061,9 @@ Core Options *Type*: boolean - .. deprecated:: 4.2 Use :setting:`net.tls.allowInvalidCertificates` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.allowInvalidCertificates` instead. Enable or disable the validation checks for TLS/SSL certificates on other servers in the cluster and allows the use of invalid certificates to @@ -2074,8 +2102,9 @@ Core Options *Type*: string - .. deprecated:: 4.2 Use :setting:`net.tls.disabledProtocols` instead. + .. deprecated:: 4.2 + Use :setting:`net.tls.disabledProtocols` instead. Prevents a MongoDB server running with TLS/SSL from accepting incoming connections that use a specific protocol or protocols. To @@ -2111,7 +2140,9 @@ Core Options *Type*: boolean - .. deprecated:: 4.2 Use :setting:`net.tls.FIPSMode` instead. + .. deprecated:: 4.2 + + Use :setting:`net.tls.FIPSMode` instead. Enable or disable the use of the FIPS mode of the TLS/SSL library for the :binary:`~bin.mongos` or :binary:`~bin.mongod`. Your system must have a FIPS @@ -3916,6 +3947,7 @@ LDAP Parameters mode: slowOpThresholdMs: slowOpSampleRate: + filter: .. _configuration-profiling-mode: .. setting:: operationProfiling.mode @@ -4007,8 +4039,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/connection-string.txt b/source/reference/connection-string.txt index 66f6fea4e11..9260e0028ff 100644 --- a/source/reference/connection-string.txt +++ b/source/reference/connection-string.txt @@ -707,7 +707,7 @@ connecting to the MongoDB deployment. * - .. urioption:: waitQueueMultiple - - A number that the driver multiples the :urioption:`maxPoolSize` + - A number that the driver multiplies the :urioption:`maxPoolSize` value to, to provide the maximum number of threads allowed to wait for a connection to become available from the pool. For default values, see the :ecosystem:`/drivers` diff --git a/source/reference/expansion-directives.txt b/source/reference/expansion-directives.txt index 4efa7163655..6d998bb4727 100644 --- a/source/reference/expansion-directives.txt +++ b/source/reference/expansion-directives.txt @@ -194,7 +194,7 @@ entire configuration file. path: "/var/log/mongodb/mongod.log" net: bindIp: 192.51.100.24,127.0.0.1 - TLS: + tls: mode: requireTLS certificateKeyFile: "/etc/tls/mongod.pem" certificateKeyFilePassword: 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, 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/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.txt b/source/reference/method.txt index 1f96b447b14..16b536ab47a 100644 --- a/source/reference/method.txt +++ b/source/reference/method.txt @@ -528,13 +528,18 @@ Database - Prints a report of the status of the replica set from the perspective of the primary. + * - :method:`db.printSecondaryReplicationInfo()` + + - Prints the status of the replica set from the + perspective of the secondaries. + * - :method:`db.printShardingStatus()` - Prints a report of the sharding configuration and the chunk ranges. * - :method:`db.printSlaveReplicationInfo()` - - Prints a report of the status of the replica set from the perspective of the secondaries. + - .. include:: /includes/deprecated-db.printSlaveReplicationInfo.rst * - :method:`db.resetError()` @@ -932,11 +937,17 @@ Replication * - :method:`rs.printReplicationInfo()` - - Prints a report of the status of the replica set from the perspective of the primary. + - Prints a formatted report of the replica set status from the + perspective of the primary. + + * - :method:`rs.printSecondaryReplicationInfo()` + + - Prints a formatted report of the replica set status from the + perspective of the secondaries. * - :method:`rs.printSlaveReplicationInfo()` - - Prints a report of the status of the replica set from the perspective of the secondaries. + - .. include:: /includes/deprecated-rs.printSlaveReplicationInfo.rst * - :method:`rs.reconfig()` diff --git a/source/reference/method/Mongo.txt b/source/reference/method/Mongo.txt index d4fb144742d..09ae4141b4b 100644 --- a/source/reference/method/Mongo.txt +++ b/source/reference/method/Mongo.txt @@ -92,7 +92,7 @@ syntax: { "keyVaultClient" : , "keyVaultNamespace" : "", - "kmsProvider" : , + "kmsProviders" : , "schemaMap" : , "bypassAutoEncryption" : } @@ -115,8 +115,7 @@ following parameters: - :method:`Mongo()` connection object. - *(Optional)* The MongoDB cluster hosting the key vault - collection. Omit to use the current database connection as the - key vault host. + collection. Specify a :method:`Mongo()` connection object pointing to the cluster: @@ -128,9 +127,14 @@ following parameters: var ClientSideFieldLevelEncryptionOptions = { "keyVaultClient" : keyVaultClient, "keyVaultNamespace" : ".", - "kmsProvider" : { ... } + "kmsProviders" : { ... } } + If ``keyVaultClient`` is omitted, the ``host`` specified to the + :method:`Mongo()` object containing the + ``ClientSideFieldLevelEncryptionOptions`` document is used as the + key vault host. + * - ``keyVaultNamespace`` - string @@ -138,7 +142,7 @@ following parameters: - *(Required)* The full :term:`namespace` of the key vault collection. - * - ``kmsProvider`` + * - ``kmsProviders`` - document @@ -158,7 +162,7 @@ following parameters: .. code-block:: json - "kmsProvider" : { + "kmsProviders" : { "aws" : { "accessKeyId" : "AWSAccessKeyId", "secretAccessKey" : "AWSSecretAccessKey" @@ -174,7 +178,7 @@ following parameters: .. code-block:: json - "kmsProvider" : { + "kmsProviders" : { "local" : { "key" : BinData(0, "<96 byte base-64 encoded key>") } diff --git a/source/reference/method/PlanCache.list.txt b/source/reference/method/PlanCache.list.txt index ee77655a260..df5a8a470f0 100644 --- a/source/reference/method/PlanCache.list.txt +++ b/source/reference/method/PlanCache.list.txt @@ -248,7 +248,8 @@ associated with the following shapes: 1.5002 ], "indexFilterSet" : false, - "host" : "mongodb1.example.net:27018", + "estimatedSizeBytes" : NumberLong(3160), // Available starting in MongoDB 5.0, 4.4.3, 4.2.12, 4.0.23, 3.6.23 + "host" : "mongodb1.example.net:27018", "shard" : "shardA" // Available if run on sharded cluster }, @@ -292,7 +293,7 @@ associated with the following shapes: For details on the output, see :ref:`$planCacheStats output `. - + .. planCache-list-query-shapes: List Query Shapes @@ -311,7 +312,7 @@ example, the following operation passes in a pipeline with a .. code-block:: javascript db.orders.getPlanCache().list( [ { $project: {createdFromQuery: 1, queryHash: 1 } } ] ) - + The operation returns the following query shapes: .. code-block:: javascript @@ -521,6 +522,7 @@ The operation returns the following: 1.5002 ], "indexFilterSet" : false, + "estimatedSizeBytes" : NumberLong(3160), // Available starting in MongoDB 5.0, 4.4.3, 4.2.12, 4.0.23, 3.6.23 "host" : "mongodb1.example.net:27018", "shard" : "shardA" // Available if run on sharded cluster } diff --git a/source/reference/method/cursor.limit.txt b/source/reference/method/cursor.limit.txt index 956592d9430..e5a6edf31ff 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,20 @@ 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 to include at least one field in your sort that contains +unique values, before passing results to :method:`~cursor.limit()`. + +Sorting on fields that contain duplicate values may return an +inconsistent sort order for those duplicate fields over multiple +executions, especially when the collection is actively receiving writes. + +The easiest way to guarantee sort consistency is to include the +``_id`` field in your sort query. + +See :ref:`Consistent 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 362f4e9cf88..62baf24db65 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,24 +47,41 @@ 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 to include at least one field in your sort that contains +unique values, before passing results to :method:`~cursor.skip()`. +Sorting on fields that contain duplicate values may return an +inconsistent sort order for those duplicate fields over multiple +executions, especially when the collection is actively receiving writes. + +The easiest way to guarantee sort consistency is to include the +``_id`` field in your sort query. + +See :ref:`Consistent 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 :term:`natural order`: +The following JavaScript function uses :method:`~cursor.skip()` to +paginate a collection by its ``_id`` field: .. 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 => { @@ -72,16 +89,16 @@ paginate a collection in :term:`natural 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 ```````````````` @@ -92,7 +109,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 diff --git a/source/reference/method/cursor.sort.txt b/source/reference/method/cursor.sort.txt index 50ea3283daf..5c4eb2c0c3c 100644 --- a/source/reference/method/cursor.sort.txt +++ b/source/reference/method/cursor.sort.txt @@ -60,12 +60,72 @@ Definition Behaviors --------- -Result Ordering -~~~~~~~~~~~~~~~ +.. _sort-cursor-consistent-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 Consistency +~~~~~~~~~~~~~~~~ + +.. versionchanged:: 4.4 + +.. include:: /includes/fact-sort-consistency.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, sort order may be inconsistent, 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 +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 *consistent 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.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.collection.createIndex.txt b/source/reference/method/db.collection.createIndex.txt index 6617cfe7f29..6ec2433bc91 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/reference/method/db.collection.ensureIndex.txt b/source/reference/method/db.collection.ensureIndex.txt index 6d5eea9f06c..2808b84cd71 100644 --- a/source/reference/method/db.collection.ensureIndex.txt +++ b/source/reference/method/db.collection.ensureIndex.txt @@ -19,7 +19,8 @@ Definition .. include:: /includes/fact-mongo-shell-method.rst - .. deprecated:: 3.0.0 + .. deprecated:: 3.0 + :method:`db.collection.ensureIndex()` has been replaced by :method:`db.collection.createIndex()`. diff --git a/source/reference/method/db.collection.findAndModify.txt b/source/reference/method/db.collection.findAndModify.txt index e1c394b587f..4713e033a7c 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-consistent-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-consistency.rst + + See :ref:`sort-cursor-consistent-sorting` for more information. + + + * - ``remove`` - boolean 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 --------- 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/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 diff --git a/source/reference/method/db.getProfilingLevel.txt b/source/reference/method/db.getProfilingLevel.txt index c33ade097c7..688c5ebb7e4 100644 --- a/source/reference/method/db.getProfilingLevel.txt +++ b/source/reference/method/db.getProfilingLevel.txt @@ -16,4 +16,5 @@ db.getProfilingLevel() ":dbcommand:`profile`" and returns the current profiling level. .. deprecated:: 1.8.4 + Use :method:`db.getProfilingStatus()` for related functionality. 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.printSecondaryReplicationInfo.txt b/source/reference/method/db.printSecondaryReplicationInfo.txt new file mode 100644 index 00000000000..f15413b1422 --- /dev/null +++ b/source/reference/method/db.printSecondaryReplicationInfo.txt @@ -0,0 +1,28 @@ +================================== +db.printSecondaryReplicationInfo() +================================== + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +Definition +---------- + +.. method:: db.printSecondaryReplicationInfo() + + Prints a formatted report of the :term:`replica set` status from the + perspective of the :term:`secondary` member of the set. The output is + identical to the :method:`rs.printSecondaryReplicationInfo()` method. + +Output +------ + +.. |method| replace:: :method:`db.printSecondaryReplicationInfo()` +.. |method-alternative| replace:: :method:`rs.status()` + +.. include:: /includes/output-printSecondaryReplicationInfo.rst diff --git a/source/reference/method/db.printSlaveReplicationInfo.txt b/source/reference/method/db.printSlaveReplicationInfo.txt index 6a298d743ed..7c656a5e034 100644 --- a/source/reference/method/db.printSlaveReplicationInfo.txt +++ b/source/reference/method/db.printSlaveReplicationInfo.txt @@ -15,6 +15,8 @@ Definition .. method:: db.printSlaveReplicationInfo() + .. include:: /includes/deprecated-db.printSlaveReplicationInfo.rst + Returns a formatted report of the status of a :term:`replica set` from the perspective of the :term:`secondary` member of the set. The output is identical to that of diff --git a/source/reference/method/db.removeUser.txt b/source/reference/method/db.removeUser.txt index 6a5a1b8be68..3c11105073b 100644 --- a/source/reference/method/db.removeUser.txt +++ b/source/reference/method/db.removeUser.txt @@ -11,6 +11,7 @@ db.removeUser() :class: singlecol .. deprecated:: 2.6 + Use :method:`db.dropUser()` instead of :method:`db.removeUser()` diff --git a/source/reference/method/db.setProfilingLevel.txt b/source/reference/method/db.setProfilingLevel.txt index 52bfbddb1bc..e68b5eaf096 100644 --- a/source/reference/method/db.setProfilingLevel.txt +++ b/source/reference/method/db.setProfilingLevel.txt @@ -17,37 +17,53 @@ 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 + ``1`` or ``2`` (specifically, 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 `. If the :ref:`database profiler level ` is - ``0`` (i.e. :doc:`database profiler + ``0`` (specifically, :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. + .. include:: /includes/log-changes-to-database-profiler.rst + Syntax ~~~~~~ @@ -83,7 +99,7 @@ Parameters .. include:: /includes/database-profiler-levels.rst - Since profiling is not available on :binary:`~bin.mongos`, + Because profiling is not available on :binary:`~bin.mongos`, :method:`db.setProfilingLevel()` cannot be used to set the profiling level to a value other than ``0`` on a :binary:`~bin.mongos` instance. @@ -114,9 +130,9 @@ Parameters 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 :binary:`~bin.mongos` instances, the setting affects + the diagnostic log only and not the profiler because + profiling is not available on :binary:`~bin.mongos`. .. note:: This argument affects the same setting as the configuration @@ -135,14 +151,46 @@ Parameters 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 :binary:`~bin.mongos` instances, the setting affects + the diagnostic log only and not the profiler because + profiling is not available on :binary:`~bin.mongos`. .. note:: 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 because + 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 +204,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 +235,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 +270,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 +307,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 +375,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/reference/method/js-database.txt b/source/reference/method/js-database.txt index 898634439cd..f54de5c1d01 100644 --- a/source/reference/method/js-database.txt +++ b/source/reference/method/js-database.txt @@ -146,7 +146,13 @@ Database Methods * - :method:`db.printReplicationInfo()` - - Prints a report of the status of the replica set from the perspective of the primary. + - Prints a formatted report of the replica set status from + the perspective of the primary. + + * - :method:`db.printSecondaryReplicationInfo()` + + - Prints a formatted report of the replica set status from the + perspective of the secondaries. * - :method:`db.printShardingStatus()` @@ -154,7 +160,7 @@ Database Methods * - :method:`db.printSlaveReplicationInfo()` - - Prints a report of the status of the replica set from the perspective of the secondaries. + - .. include:: /includes/deprecated-db.printSlaveReplicationInfo.rst * - :method:`db.resetError()` @@ -240,6 +246,7 @@ Database Methods /reference/method/db.logout /reference/method/db.printCollectionStats /reference/method/db.printReplicationInfo + /reference/method/db.printSecondaryReplicationInfo /reference/method/db.printShardingStatus /reference/method/db.printSlaveReplicationInfo /reference/method/db.resetError diff --git a/source/reference/method/js-replication.txt b/source/reference/method/js-replication.txt index 14fcb213e9c..d5770372b1e 100644 --- a/source/reference/method/js-replication.txt +++ b/source/reference/method/js-replication.txt @@ -46,11 +46,17 @@ Replication Methods * - :method:`rs.printReplicationInfo()` - - Prints a report of the status of the replica set from the perspective of the primary. + - Prints a formatted report of the replica set status from the + perspective of the primary. + + * - :method:`rs.printSecondaryReplicationInfo()` + + - Prints a formatted report of the replica set status from the + perspective of the secondaries. * - :method:`rs.printSlaveReplicationInfo()` - - Prints a report of the status of the replica set from the perspective of the secondaries. + - .. include:: /includes/deprecated-rs.printSlaveReplicationInfo.rst * - :method:`rs.reconfig()` @@ -88,6 +94,7 @@ Replication Methods /reference/method/rs.help /reference/method/rs.initiate /reference/method/rs.printReplicationInfo + /reference/method/rs.printSecondaryReplicationInfo /reference/method/rs.printSlaveReplicationInfo /reference/method/rs.reconfig /reference/method/rs.remove 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. diff --git a/source/reference/method/rs.printSecondaryReplicationInfo.txt b/source/reference/method/rs.printSecondaryReplicationInfo.txt new file mode 100644 index 00000000000..68b91296963 --- /dev/null +++ b/source/reference/method/rs.printSecondaryReplicationInfo.txt @@ -0,0 +1,28 @@ +================================== +rs.printSecondaryReplicationInfo() +================================== + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +Definition +---------- + +.. method:: rs.printSecondaryReplicationInfo() + + Prints a formatted report of the :term:`replica set` status from the + perspective of the :term:`secondary` member of the set. The output is + identical to :method:`db.printSecondaryReplicationInfo()`. + +Output +------ + +.. |method| replace:: :method:`rs.printSecondaryReplicationInfo()` +.. |method-alternative| replace:: :method:`rs.status()` + +.. include:: /includes/output-printSecondaryReplicationInfo.rst diff --git a/source/reference/method/rs.printSlaveReplicationInfo.txt b/source/reference/method/rs.printSlaveReplicationInfo.txt index 6e554a5c1f9..1b2beca10ec 100644 --- a/source/reference/method/rs.printSlaveReplicationInfo.txt +++ b/source/reference/method/rs.printSlaveReplicationInfo.txt @@ -15,6 +15,8 @@ Definition .. method:: rs.printSlaveReplicationInfo() + .. include:: /includes/deprecated-rs.printSlaveReplicationInfo.rst + Returns a formatted report of the status of a :term:`replica set` from the perspective of the :term:`secondary` member of the set. The output is identical to that of diff --git a/source/reference/method/sh.updateZoneKeyRange.txt b/source/reference/method/sh.updateZoneKeyRange.txt index 1a752251497..4ebb05d3bad 100644 --- a/source/reference/method/sh.updateZoneKeyRange.txt +++ b/source/reference/method/sh.updateZoneKeyRange.txt @@ -257,38 +257,6 @@ with the ``alpha`` zone: "alpha" ) -If you wanted to create a range on values of ``b`` only, you must specify -the entire range of ``a`` when creating ranges. For example, the following -operations create two ranges on ``b`` and associates them to the -``beta`` zone. - -.. note:: - - The previously defined range conflicts with the ranges defined in this - example. Issue the :method:`sh.removeRangeFromZone()` operation to remove an - existing conflicting range. - -.. code-block:: javascript - - sh.updateZoneKeyRange( - "exampledb.collection", - { a : MinKey, b : 1 }, - { a : MaxKey, b: 10 }, - "alpha" - ); - - sh.updateZoneKeyRange( - "exampledb.collection", - { a : MinKey, b : 10 }, - { a : MaxKey, b: 20 }, - "beta" - ); - -:bsontype:`MinKey` always compares as lower than every other possible value, -while :bsontype:`MaxKey` always compares as higher than every other possible -value. Using these special values for the lower and upper bounds of the range -captures the entire possible value space of ``a``. - .. _pre-define-zone-range-example: .. _pre-define-zone-range-hashed-example: diff --git a/source/reference/mongodb-extended-json.txt b/source/reference/mongodb-extended-json.txt index 31274aede03..f64642d44f2 100644 --- a/source/reference/mongodb-extended-json.txt +++ b/source/reference/mongodb-extended-json.txt @@ -70,8 +70,8 @@ The following drivers use the Extended JSON v2.0 For C# and Ruby that use Legacy MongoDB Extended JSON v1, refer to :doc:`/reference/mongodb-extended-json-v1`. -MongoDB Command-Line Tools -~~~~~~~~~~~~~~~~~~~~~~~~~~ +MongoDB Database Tools +~~~~~~~~~~~~~~~~~~~~~~ .. include:: /includes/extracts/4.2-changes-extended-json-v2.rst diff --git a/source/reference/operator/aggregation-pipeline.txt b/source/reference/operator/aggregation-pipeline.txt index 0015f9e681a..ae4e927595a 100644 --- a/source/reference/operator/aggregation-pipeline.txt +++ b/source/reference/operator/aggregation-pipeline.txt @@ -240,7 +240,18 @@ Alphabetical Listing of Stages * - :pipeline:`$sample` - Randomly selects the specified number of documents from its input. - + + + * - :doc:`$search ` + + - Performs a full-text search of the field or fields in an Atlas + collection. + + .. note:: + + ``$search`` is only available for MongoDB Atlas clusters, and + is not available for self-managed deployments. + * - :pipeline:`$set` @@ -326,6 +337,7 @@ Alphabetical Listing of Stages /reference/operator/aggregation/replaceRoot /reference/operator/aggregation/replaceWith /reference/operator/aggregation/sample + /reference/operator/aggregation/search /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..3cccf8d4bf8 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -301,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` @@ -641,7 +651,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` @@ -703,8 +719,17 @@ 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. + + .. versionadded:: 4.4.2 + * - :expression:`$second` - Returns the seconds for a date as a number between 0 and 60 @@ -755,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` @@ -859,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` @@ -974,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 @@ -1030,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 @@ -1040,6 +1076,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 @@ -1048,6 +1085,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 @@ -1063,6 +1101,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/limit.txt b/source/reference/operator/aggregation/limit.txt index b55ccc26bfc..117a6dd659c 100644 --- a/source/reference/operator/aggregation/limit.txt +++ b/source/reference/operator/aggregation/limit.txt @@ -27,6 +27,40 @@ 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 to include at least one field in your sort that contains +unique values, before passing results to the :pipeline:`$limit` stage. + +Sorting on fields that contain duplicate values may return an +inconsistent sort order for those duplicate fields over multiple +executions, especially when the collection is actively receiving writes. + +The easiest way to guarantee sort consistency is to include the +``_id`` field in your sort query. + +See the following for more information on each: + +- :ref:`Consistent sorting with $sort (aggregation) + ` +- :ref:`Consistent sorting with the sort() shell method + ` +- :ref:`Consistent sorting with the findAndModify command + ` +- :ref:`Consistent sorting with the findAndModify() shell method + ` + Example ------- diff --git a/source/reference/operator/aggregation/lookup.txt b/source/reference/operator/aggregation/lookup.txt index 93194d51009..841e1183b07 100644 --- a/source/reference/operator/aggregation/lookup.txt +++ b/source/reference/operator/aggregation/lookup.txt @@ -618,10 +618,11 @@ collection for equality matches. For example, if the index ``{ stock_item: 1, instock: 1 }`` exists on the ``warehouses`` collection: - - The equality match on the ``warehouses.stock_item`` field uses the - index. - - The range part of the query on the ``warehouses.instock`` field - does not use the indexed field in the compound index. +- The equality match on the ``warehouses.stock_item`` field uses the + index. + +- The range part of the query on the ``warehouses.instock`` field + does not use the indexed field in the compound index. .. seealso:: diff --git a/source/reference/operator/aggregation/planCacheStats.txt b/source/reference/operator/aggregation/planCacheStats.txt index edb746a7a88..d2a515fccf6 100644 --- a/source/reference/operator/aggregation/planCacheStats.txt +++ b/source/reference/operator/aggregation/planCacheStats.txt @@ -129,6 +129,7 @@ document similar to the following: ... ], "indexFilterSet" : , + "estimatedSizeBytes" : , // Available starting in MongoDB 5.0, 4.4.3, 4.2.12, 4.0.23, 3.6.23 "host" : , // Available starting in MongoDB 4.4 "shard" : // Available starting in MongoDB 4.4 if run on sharded cluster } @@ -189,9 +190,11 @@ including: currently available indexes for that shape. For more information, see :data:`explain.queryPlanner.planCacheKey` - * - ``cachedPlan`` + * - :ref:`cachedPlan ` - - The details of the cached plan. See :data:`explain.queryPlanner`. + - .. _plancachestats-cachedPlan: + + The details of the cached plan. See :data:`explain.queryPlanner`. * - ``works`` @@ -203,17 +206,21 @@ including: * - ``timeOfCreation`` - Time of creation for the entry. - * - ``creationExecStats`` + * - :ref:`creationExecStats ` + + - .. _plancachestats-creationExecStats: - - An array of execution stats documents. The array contains a + An array of execution stats documents. The array contains a document for each candidate plan. For details on the execution stats, see :data:`explain.executionStats`. - * - ``candidatePlanScores`` + * - :ref:`candidatePlanScores ` + + - .. _plancachestats-candidatePlanScores: - - An array of scores for the candidate plans listed in the + An array of scores for the candidate plans listed in the ``creationExecStats`` array. * - ``indexFilterSet`` @@ -221,6 +228,14 @@ including: - A boolean that indicates whether the an :ref:`index filter ` exists for the query shape. + * - ``estimatedSizeBytes`` + + - A number that describes the estimated size in bytes of a plan + cache entry. + + .. versionadded:: 5.0 (*Also available starting in 4.4.3, 4.2.12, + 4.0.23, and 3.6.23*) + * - :ref:`host ` - .. _plancachestats-host: @@ -330,6 +345,7 @@ The operation returns all entries in the cache: 1.5002 ], "indexFilterSet" : false, + "estimatedSizeBytes" : NumberLong(3160), // Available starting in MongoDB 5.0, 4.4.3, 4.2.12, 4.0.23, 3.6.23 "host" : "mongodb1.example.net:27018", // Available starting in MongoDB 4.4 "shard" : "shardA" // Available starting in MongoDB 4.4 if run on sharded cluster } @@ -360,6 +376,7 @@ The operation returns all entries in the cache: 1.0002 ], "indexFilterSet" : false, + "estimatedSizeBytes" : NumberLong(2539), // Available starting in MongoDB 5.0, 4.4.3, 4.2.12, 4.0.23, 3.6.23 "host" : "mongodb1.example.net:27018", // Available starting in MongoDB 4.4 "shard" : "shardA" // Available starting in MongoDB 4.4 if run on sharded cluster } @@ -390,6 +407,7 @@ The operation returns all entries in the cache: 1.7502 ], "indexFilterSet" : false, + "estimatedSizeBytes" : NumberLong(3183), // Available starting in MongoDB 5.0, 4.4.3, 4.2.12, 4.0.23, 3.6.23 "host" : "mongodb1.example.net:27018", // Available starting in MongoDB 4.4 "shard" : "shardA" // Available starting in MongoDB 4.4 if run on sharded cluster } @@ -424,6 +442,7 @@ The operation returns all entries in the cache: 1.6668666666666665 ], "indexFilterSet" : false, + "estimatedSizeBytes" : NumberLong(4653), // Available starting in MongoDB 5.0, 4.4.3, 4.2.12, 4.0.23, 3.6.23 "host" : "mongodb1.example.net:27018", // Available starting in MongoDB 4.4 "shard" : "shardA" // Available starting in MongoDB 4.4 if run on sharded cluster } @@ -476,7 +495,7 @@ specific information for a particular query shape: .. code-block:: javascript - db.orders.aggregate( [ + db.orders.aggregate( [ { $planCacheStats: { } }, { $match: { planCacheKey: "DD67E353"} } ] ) @@ -485,7 +504,7 @@ The operation returns the following: .. code-block:: javascript :copyable: false - + { "createdFromQuery" : { "query" : { "quantity" : { "$gte" : 5 }, "type" : "apparel" }, @@ -651,6 +670,7 @@ The operation returns the following: 1.5002 ], "indexFilterSet" : false, + "estimatedSizeBytes" : NumberLong(3160), // Available starting in MongoDB 5.0, 4.4.3, 4.2.12, 4.0.23, 3.6.23 "host" : "mongodb1.example.net:27018", // Available starting in MongoDB 4.4 "shard" : "shardA" // Available starting in MongoDB 4.4 if run on sharded cluster } diff --git a/source/reference/operator/aggregation/rand.txt b/source/reference/operator/aggregation/rand.txt new file mode 100644 index 00000000000..b2c91682927 --- /dev/null +++ b/source/reference/operator/aggregation/rand.txt @@ -0,0 +1,168 @@ +=================== +$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 +-------- + +Generate Random Data Points +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This example models charitable donations. The collection starts with a +list of donors. + +.. code-block:: javascript + + db.donors.insertMany( + [ + { donorId: 1000, amount: 0, frequency: 1 }, + { donorId: 1001, amount: 0, frequency: 2 }, + { donorId: 1002, amount: 0, frequency: 1 }, + { donorId: 1003, amount: 0, frequency: 2 }, + { donorId: 1004, amount: 0, frequency: 1 } + ] + ) + +We use an aggregation pipeline to update each document with a random +donation amount. + +.. code-block:: javascript + + db.donors.aggregate( + [ + { $set: { amount: { $multiply: [ { $rand: {} }, 100 ] } } }, + { $set: { amount: { $floor: "$amount" } } }, + { $merge: "donors" } + ] + ) + +The first :pipeline:`$set` stage updates the ``amount`` field. An +initial value between 0 and 1 is generated using ``$rand``. Then +:expression:`$multiply` scales it upward 100 times. + +The :expression:`$floor` operator in the second ``$set`` stage removes +the decimal portion from the ``amount`` to leave an integer value. + +Finally, :pipeline:`$merge` writes the random value created in the +previous steps to the ``amount`` field, updating it for each document +in the ``donors`` collection. + +You can view the results with a projection stage: + +.. code-block:: javascript + + db.donors.aggregate( + [ + { $project: {_id: 0, donorId: 1, amount: 1 } } + ] + ) + +The projection shows the scaled amounts are now random values in the +range from 0 to 99. + +.. code-block:: javascript + :copyable: false + + { "donorId" : 1000, "amount" : 27 } + { "donorId" : 1001, "amount" : 10 } + { "donorId" : 1002, "amount" : 88 } + { "donorId" : 1003, "amount" : 73 } + { "donorId" : 1004, "amount" : 5 } + +Select Random Items From a Collection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can use ``$rand`` in an aggregation pipeline to select random +documents from a collection. Consider a collection of voter records: + +.. code-block:: javascript + + db.voters.insertMany( + [ + { name: "Archibald", voterId: 4321, district: 3, registered: true }, + { name: "Beckham", voterId: 4331, district: 3, registered: true }, + { name: "Carolin", voterId: 5321, district: 4, registered: true }, + { name: "Debarge", voterId: 4343, district: 3, registered: false }, + { name: "Eckhard", voterId: 4161, district: 3, registered: false }, + { name: "Faberge", voterId: 4300, district: 1, registered: true }, + { name: "Grimwald", voterId: 4111, district: 3, registered: true }, + { name: "Humphrey", voterId: 2021, district: 3, registered: true }, + { name: "Idelfon", voterId: 1021, district: 4, registered: true }, + { name: "Justo", voterId: 9891, district: 3, registered: false } + ] + ) + +Imagine you want to select about half of the voters in District 3 to do +some polling. + +.. code-block:: javascript + + db.voters.aggregate( + [ + { $match: { district: 3 } }, + { $match: { $expr: { $lt: [0.5, {$rand: {} } ] } } }, + { $project: { _id: 0, name: 1, registered: 1 } } + ] + ) + +The first pipeline stage matches all documents where the voter is from +district 3. + +The second :pipeline:`$match` stage uses ``$rand`` in a match +expression to further refine the selection. For each document, +``$rand`` generates a value between 0 and 1. The threshhold of ``0.5`` +in the less than :expression:`($lt)<$lt>` comparison means that +:query:`$expr` will be true for about half the documents. + +In the :pipeline:`$project` stage the selected documents are filtered +to return the ``name`` and ``registered`` fields. There are 7 voters in +District 3, running the code selects about half of them. + +.. code-block:: javascript + :copyable: false + + { "name" : "Archibald", "registered" : true } + { "name" : "Debarge", "registered" : false } + { "name" : "Humphrey", "registered" : true } + +.. note:: + + 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/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 ~~~~~~~~~~~~~~~~~~ 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/aggregation/sampleRate.txt b/source/reference/operator/aggregation/sampleRate.txt new file mode 100644 index 00000000000..4f07e6650e3 --- /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 +---------- + +.. expression:: $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 :expression:`$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`. + diff --git a/source/reference/operator/aggregation/search.txt b/source/reference/operator/aggregation/search.txt new file mode 100644 index 00000000000..c469ed063a5 --- /dev/null +++ b/source/reference/operator/aggregation/search.txt @@ -0,0 +1,27 @@ +===================== +$search (aggregation) +===================== + +.. default-domain:: mongodb + +``$search`` aggregation pipleline stage performs a full-text search of +the field or fields in an Atlas collection. The fields must be covered +by an :atlas:`Atlas Search +` index. See: + +- :atlas:`Index Definitions + ` to learn more about + creating and managing Atlas Search indexes. +- :atlas:`$search Aggregation Pipeline Stage + ` to learn more about the + ``$search`` pipeline stage syntax and usage. +- :atlas:`$search Operators ` to + learn more about the ``$search`` aggregation pipeline stage + operators. + +.. important:: + + The ``$search`` aggregation pipeline stage is only available for + collections hosted on :atlas:`MongoDB Atlas ` cluster tiers + running MongoDB version 4.2 or later. To learn more, see + :atlas:`Atlas Search `. 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:: 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/skip.txt b/source/reference/operator/aggregation/skip.txt index 3f1b73e9336..9975ae69594 100644 --- a/source/reference/operator/aggregation/skip.txt +++ b/source/reference/operator/aggregation/skip.txt @@ -28,6 +28,40 @@ 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 to include at least one field in your sort that contains +unique values, before passing results to the :pipeline:`$skip` stage. + +Sorting on fields that contain duplicate values may return a different +sort order for those duplicate fields over multiple executions, +especially when the collection is actively receiving writes. + +The easiest way to guarantee sort consistency is to include the +``_id`` field in your sort query. + +See the following for more information on each: + +- :ref:`Consistent sorting with $sort (aggregation) + ` +- :ref:`Consistent sorting with the sort() shell method + ` +- :ref:`Consistent sorting with the findAndModify command + ` +- :ref:`Consistent sorting with the findAndModify() shell method + ` + Example ------- diff --git a/source/reference/operator/aggregation/sort.txt b/source/reference/operator/aggregation/sort.txt index cccb9489171..21905be5778 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-consistent-sorting: + +Sort Consistency +~~~~~~~~~~~~~~~~ + +.. include:: /includes/fact-sort-consistency.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, sort order may be inconsistent, 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 *consistent 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/reference/operator/aggregation/substr.txt b/source/reference/operator/aggregation/substr.txt index 85ff9c1fef4..d32df64ee0d 100644 --- a/source/reference/operator/aggregation/substr.txt +++ b/source/reference/operator/aggregation/substr.txt @@ -16,6 +16,7 @@ Definition .. expression:: $substr .. deprecated:: 3.4 + :expression:`$substr` is now an alias for :expression:`$substrBytes`. 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` 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. diff --git a/source/reference/operator/projection/positional.txt b/source/reference/operator/projection/positional.txt index eee36be9eb6..f28407fb342 100644 --- a/source/reference/operator/projection/positional.txt +++ b/source/reference/operator/projection/positional.txt @@ -17,11 +17,8 @@ Definition The positional :projection:`$` operator limits the contents of an - ```` to return either: - - - The first element that matches the query condition on the array. - - The first element if no query condition is specified for the - array (Starting in MongoDB 4.4). + ```` to return the first element that matches the query + condition on the array. Use :projection:`$` in the :term:`projection` document of the :method:`~db.collection.find()` method or the 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/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 `. diff --git a/source/reference/operator/query/geoWithin.txt b/source/reference/operator/query/geoWithin.txt index 681cf7404da..30459f723fc 100644 --- a/source/reference/operator/query/geoWithin.txt +++ b/source/reference/operator/query/geoWithin.txt @@ -194,5 +194,6 @@ specify the custom MongoDB coordinate reference system. For example: .. query:: $within .. deprecated:: 2.4 + :query:`$geoWithin` replaces :query:`$within` in MongoDB 2.4. diff --git a/source/reference/operator/query/rand.txt b/source/reference/operator/query/rand.txt new file mode 100644 index 00000000000..961104aaffa --- /dev/null +++ b/source/reference/operator/query/rand.txt @@ -0,0 +1,144 @@ +===== +$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 +-------- + +Generate Random Data Points +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This example models charitable donations. The collection starts with a +list of donors. + +.. code-block:: javascript + + db.donors.insertMany( + [ + { donorId: 1000, amount: 0, frequency: 1 }, + { donorId: 1001, amount: 0, frequency: 2 }, + { donorId: 1002, amount: 0, frequency: 1 }, + { donorId: 1003, amount: 0, frequency: 2 }, + { donorId: 1004, amount: 0, frequency: 1 } + ] + ) + +Then we construct an operation to update each document with a random +donation amount: + +.. code-block:: javascript + + db.donors.updateMany( + {}, + [ + { $set: + { amount: + { $floor: + { $multiply: [ { $rand: {} }, 100 ] } + } + } + } + ] + ) + +The empty update filter matches every document in the collection. + +For each document we generate a value between 0 and 1 using ``$rand`` +then scale the value with :expression:`$multiply`. + +The :expression:`$floor` operator removes the decimal portion so the +updated ``amount`` is an integer value. + +After updating the collection, the documents look like this: + +.. code-block:: javascript + :copyable: false + + { "donorId" : 1000, "amount" : 2, "frequency" : 1 } + { "donorId" : 1001, "amount" : 58, "frequency" : 2 } + { "donorId" : 1002, "amount" : 27, "frequency" : 1 } + { "donorId" : 1003, "amount" : 26, "frequency" : 2 } + { "donorId" : 1004, "amount" : 42, "frequency" : 1 } + +Select Random Items From a Collection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``$rand`` operator can be used to select random documents from a +collection. Given a collection of voter records: + +.. code-block:: javascript + + db.voters.insertMany( + [ + { name: "Archibald", voterId: 4321, district: 3, registered: true }, + { name: "Beckham", voterId: 4331, district: 3, registered: true }, + { name: "Carolin", voterId: 5321, district: 4, registered: true }, + { name: "Debarge", voterId: 4343, district: 3, registered: false }, + { name: "Eckhard", voterId: 4161, district: 3, registered: false }, + { name: "Faberge", voterId: 4300, district: 1, registered: true }, + { name: "Grimwald", voterId: 4111, district: 3, registered: true }, + { name: "Humphrey", voterId: 2021, district: 3, registered: true }, + { name: "Idelfon", voterId: 1021, district: 4, registered: true }, + { name: "Justo", voterId: 9891, district: 3, registered: false } + ] + ) + +Imagine you want to select about half of the voters in District 3 to do +some polling. + +.. code-block:: javascript + + db.voters.find( + { district: 3, + $expr: { $lt: [0.5, {$rand: {} } ] } + }, + { _id: 0, name: 1, registered: 1 } + ) + +The intial match on the ``district`` field selects documents where the +voter is from district 3. + +The :query:`$expr` operator uses ``$rand`` to further refine the +:dbcommand:`$find` operation. For each document, ``$rand`` generates a +value between 0 and 1. The threshold of ``0.5`` means the less than +:expression:`($lt)<$lt>` comparison will be true for about half the +documents in the set. + +There are 7 voters in District 3, running the code selects about half +of them. + +.. code-block:: javascript + :copyable: false + + { "name" : "Beckham", "registered" : true } + { "name" : "Eckhard", "registered" : false } + { "name" : "Grimwald", "registered" : true } + { "name" : "Humphrey", "registered" : true } + +.. seealso:: + + :expression:`$rand (aggregation) <$rand>` + diff --git a/source/reference/operator/query/text.txt b/source/reference/operator/query/text.txt index c2b0de1b192..828171bc244 100644 --- a/source/reference/operator/query/text.txt +++ b/source/reference/operator/query/text.txt @@ -10,8 +10,6 @@ $text :depth: 1 :class: singlecol -.. include:: /includes/fact-atlas-search-banner.rst - Definition ---------- @@ -165,6 +163,15 @@ The :query:`text` operator treats most punctuation in the string as delimiters, except a hyphen-minus (``-``) that negates term or an escaped double quotes ``\"`` that specifies a phrase. +.. note:: + + The ``$search`` field for the :query:`$text` expression is different + than the the :atlas:`$search aggregation stage + ` provided by + :atlas:`Atlas Search `. The ``$search`` aggregation + stage performs full-text search on specified fields and is only + available on MongoDB Atlas. + .. _text-operator-phrases: Phrases diff --git a/source/reference/parameters.txt b/source/reference/parameters.txt index 43b6dde36b7..a9feb74c35c 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 @@ -714,7 +716,9 @@ Authentication Parameters *Default*: false - .. deprecated:: 4.2 Use :parameter:`tlsWithholdClientCertificate` instead. + .. deprecated:: 4.2 + + Use :parameter:`tlsWithholdClientCertificate` instead. |both| @@ -1044,6 +1048,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. @@ -1063,6 +1069,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 @@ -2713,7 +2727,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. @@ -2741,7 +2755,7 @@ Sharding Parameters Default: 2 - |mongos-only| + |both| Maximum number of simultaneous initiating connections (including pending connections in setup/refresh state) each TaskExecutor @@ -2767,7 +2781,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 @@ -2841,7 +2855,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. @@ -2865,7 +2879,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. @@ -2891,7 +2905,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 @@ -3259,28 +3273,27 @@ Sharding Parameters Type: Non-negative integer - Default: 0 + Default: 128 The maximum number of documents in each batch to delete during the cleanup stage of :ref:`chunk migration ` (or the :dbcommand:`cleanupOrphaned` command). - The default value of ``0`` indicates that the system chooses an - appropriate value, generally 128 documents. + A value of ``0`` indicates that the system chooses the default value. - The following sets the :parameter:`rangeDeleterBatchSize` to 100 + The following example sets :parameter:`rangeDeleterBatchSize` to 32 documents: .. code-block:: sh - mongod --setParameter rangeDeleterBatchSize=100 + mongod --setParameter rangeDeleterBatchSize=32 The parameter may also be set using the :dbcommand:`setParameter` command: .. code-block:: javascript - db.adminCommand( { setParameter: 1, rangeDeleterBatchSize: 100 } ) + db.adminCommand( { setParameter: 1, rangeDeleterBatchSize: 32 } ) .. parameter:: skipShardingConfigurationChecks diff --git a/source/reference/privilege-documents.txt b/source/reference/privilege-documents.txt index 425bb5dd1d1..b9fe2036ab7 100644 --- a/source/reference/privilege-documents.txt +++ b/source/reference/privilege-documents.txt @@ -13,6 +13,7 @@ :class: singlecol .. deprecated:: 2.6 + MongoDB 2.6 introduced a new model for user credentials and privileges and no longer uses privilege documents. See :doc:`/reference/system-users-collection`. diff --git a/source/reference/program/mongo.txt b/source/reference/program/mongo.txt index a8e4a4a7fc2..6265798c654 100644 --- a/source/reference/program/mongo.txt +++ b/source/reference/program/mongo.txt @@ -676,7 +676,9 @@ SSL Options (Deprecated) .. option:: --ssl - .. deprecated:: 4.2 Use :option:`--tls ` instead. + .. deprecated:: 4.2 + + Use :option:`--tls ` instead. Enables connection to a :binary:`~bin.mongod` or :binary:`~bin.mongos` that has TLS/SSL support enabled. @@ -689,7 +691,10 @@ SSL Options (Deprecated) .. option:: --sslPEMKeyFile - .. deprecated:: 4.2 Use :option:`--tlsCertificateKeyFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCertificateKeyFile + ` instead. Specifies the :file:`.pem` file that contains both the TLS/SSL certificate and key. Specify the file name of the :file:`.pem` file using relative @@ -706,7 +711,10 @@ SSL Options (Deprecated) .. option:: --sslPEMKeyPassword - .. deprecated:: 4.2 Use :option:`--tlsCertificateKeyFilePassword ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCertificateKeyFilePassword + ` instead. Specifies the password to de-crypt the certificate-key file (i.e. ``--sslPEMKeyFile``). Use the :option:`--sslPEMKeyPassword` option only if the @@ -722,9 +730,10 @@ SSL Options (Deprecated) .. option:: --sslCAFile - .. deprecated:: 4.2 Use :option:`--tlsCAFile ` instead. - - + .. deprecated:: 4.2 + + Use :option:`--tlsCAFile ` instead. + Specifies the :file:`.pem` file that contains the root certificate chain from the Certificate Authority. Specify the file name of the :file:`.pem` file using relative or absolute paths. @@ -737,7 +746,10 @@ SSL Options (Deprecated) .. option:: --sslCertificateSelector = - .. deprecated:: 4.2 Use :option:`--tlsCertificateSelector ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCertificateSelector + ` instead. .. versionadded:: 4.0 @@ -760,7 +772,9 @@ SSL Options (Deprecated) .. option:: --sslCRLFile - .. deprecated:: 4.2 Use :option:`--tlsCRLFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCRLFile ` instead. Specifies the :file:`.pem` file that contains the Certificate Revocation List. Specify the file name of the :file:`.pem` file using relative or @@ -779,7 +793,9 @@ SSL Options (Deprecated) .. option:: --sslFIPSMode - .. deprecated:: 4.2 Use :option:`--tlsFIPSMode ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsFIPSMode ` instead. Directs the :program:`mongo` to use the FIPS mode of the TLS/SSL library. Your system must have a FIPS compliant library to use @@ -790,8 +806,10 @@ SSL Options (Deprecated) .. option:: --sslAllowInvalidCertificates - .. deprecated:: 4.2 Use :option:`--tlsAllowInvalidCertificates ` instead. - + .. deprecated:: 4.2 + + Use :option:`--tlsAllowInvalidCertificates + ` instead. Bypasses the validation checks for server certificates and allows the use of invalid certificates to connect. @@ -810,7 +828,10 @@ SSL Options (Deprecated) .. option:: --sslAllowInvalidHostnames - .. deprecated:: 4.2 Use :option:`--tlsAllowInvalidHostnames ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsAllowInvalidHostnames + ` instead. Disables the validation of the hostnames in TLS/SSL certificates. Allows :program:`mongo` to connect to MongoDB instances even if the hostname in their @@ -822,7 +843,10 @@ SSL Options (Deprecated) .. option:: --sslDisabledProtocols - .. deprecated:: 4.2 Use :option:`--tlsDisabledProtocols ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsDisabledProtocols + ` instead. Disables the specified TLS protocols. The option recognizes the following protocols: ``TLS1_0``, ``TLS1_1``, ``TLS1_2``, and diff --git a/source/reference/program/mongod.txt b/source/reference/program/mongod.txt index ccc8971b1fd..ce8e3b52b73 100644 --- a/source/reference/program/mongod.txt +++ b/source/reference/program/mongod.txt @@ -438,6 +438,11 @@ Core Options If you specify ``reopen``, you must also use :option:`--logappend`. + If :doc:`auditing ` is enabled, the + :dbcommand:`logRotate` command also rotates the audit log according + to the above parameters. For example, if :option:`--logRotate` is set + to ``rename``, the audit log will also be renamed. + .. option:: --timeStampFormat @@ -2457,7 +2462,9 @@ SSL Options (Deprecated) .. option:: --sslOnNormalPorts - .. deprecated:: 2.6 Use :option:`--tlsMode requireTLS <--tlsMode>` instead. + .. deprecated:: 2.6 + + Use :option:`--tlsMode requireTLS <--tlsMode>` instead. Enables TLS/SSL for :program:`mongod`. @@ -2471,7 +2478,9 @@ SSL Options (Deprecated) .. option:: --sslMode - .. deprecated:: 4.2 Use :option:`--tlsMode ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsMode ` instead. Enables TLS/SSL or mixed TLS/SSL used for all network connections. The argument to the :option:`--sslMode` option can be one of the following: @@ -2510,7 +2519,10 @@ SSL Options (Deprecated) .. option:: --sslPEMKeyFile - .. deprecated:: 4.2 Use :option:`--tlsCertificateKeyFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCertificateKeyFile + ` instead. Specifies the :file:`.pem` file that contains both the TLS/SSL certificate and key. @@ -2542,7 +2554,10 @@ SSL Options (Deprecated) .. option:: --sslPEMKeyPassword - .. deprecated:: 4.2 Use :option:`--tlsCertificateKeyFilePassword ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCertificateKeyFilePassword + ` instead. Specifies the password to de-crypt the certificate-key file (i.e. :option:`--sslPEMKeyFile`). Use the :option:`--sslPEMKeyPassword` option only if the @@ -2570,7 +2585,9 @@ SSL Options (Deprecated) .. option:: --sslClusterFile - .. deprecated:: 4.2 Use :option:`--tlsClusterFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsClusterFile ` instead. Specifies the :file:`.pem` file that contains the x.509 certificate-key file for :ref:`membership authentication @@ -2603,7 +2620,10 @@ SSL Options (Deprecated) .. option:: --sslCertificateSelector = - .. deprecated:: 4.2 Use :option:`--tlsCertificateSelector ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCertificateSelector + ` instead. .. versionadded:: 4.0 @@ -2642,7 +2662,10 @@ SSL Options (Deprecated) .. option:: --sslClusterCertificateSelector = - .. deprecated:: 4.2 Use :option:`--tlsClusterCertificateSelector ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsClusterCertificateSelector + ` instead. .. versionadded:: 4.0 @@ -2681,7 +2704,10 @@ SSL Options (Deprecated) .. option:: --sslClusterPassword - .. deprecated:: 4.2 Use :option:`--tlsClusterPassword ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsClusterPassword + ` instead. Specifies the password to de-crypt the x.509 certificate-key file specified with ``--sslClusterFile``. Use the :option:`--sslClusterPassword` option only @@ -2708,7 +2734,9 @@ SSL Options (Deprecated) .. option:: --sslCAFile - .. deprecated:: 4.2 Use :option:`--tlsCAFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCAFile ` instead. Specifies the :file:`.pem` file that contains the root certificate chain from the Certificate Authority. Specify the file name of the @@ -2727,7 +2755,10 @@ SSL Options (Deprecated) .. option:: --sslClusterCAFile - .. deprecated:: 4.2 Use :option:`--tlsClusterCAFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsClusterCAFile ` + instead. Specifies the :file:`.pem` file that contains the root certificate chain from the Certificate Authority used to validate the certificate @@ -2760,7 +2791,9 @@ SSL Options (Deprecated) .. option:: --sslCRLFile - .. deprecated:: 4.2 Use :option:`--tlsCRLFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCRLFile ` instead. Specifies the :file:`.pem` file that contains the Certificate Revocation List. Specify the file name of the :file:`.pem` file using relative or @@ -2788,7 +2821,10 @@ SSL Options (Deprecated) .. option:: --sslAllowInvalidCertificates - .. deprecated:: 4.2 Use :option:`--tlsAllowInvalidCertificates ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsAllowInvalidCertificates + ` instead. Bypasses the validation checks for TLS/SSL certificates on other servers in the cluster and allows the use of invalid certificates to @@ -2807,7 +2843,10 @@ SSL Options (Deprecated) .. option:: --sslAllowInvalidHostnames - .. deprecated:: 4.2 Use :option:`--tlsAllowInvalidHostnames ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsAllowInvalidHostnames + ` instead. Disables the validation of the hostnames in TLS/SSL certificates, when connecting to other members of the replica set or sharded cluster @@ -2820,7 +2859,10 @@ SSL Options (Deprecated) .. option:: --sslAllowConnectionsWithoutCertificates - .. deprecated:: 4.2 Use :option:`--tlsAllowConnectionsWithoutCertificates ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsAllowConnectionsWithoutCertificates + ` instead. For clients that do not present certificates, :program:`mongod` bypasses TLS/SSL certificate validation when establishing the connection. @@ -2837,7 +2879,10 @@ SSL Options (Deprecated) .. option:: --sslDisabledProtocols - .. deprecated:: 4.2 Use :option:`--tlsDisabledProtocols ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsDisabledProtocols + ` instead. Prevents a MongoDB server running with TLS/SSL from accepting incoming connections that use a specific protocol or protocols. To @@ -2871,7 +2916,9 @@ SSL Options (Deprecated) .. option:: --sslFIPSMode - .. deprecated:: 4.2 Use :option:`--tlsFIPSMode ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsFIPSMode ` instead. Directs the :program:`mongod` to use the FIPS mode of the TLS/SSL library. Your system must have a FIPS @@ -3098,15 +3145,16 @@ inMemory Options Encryption Key Management Options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. option:: --enableEncryption +.. option:: --enableEncryption *Default*: false .. versionadded:: 3.2 - Enables encryption for the WiredTiger storage engine. You must set - to ``true`` to pass in encryption keys and configurations. + Enables encryption for the WiredTiger storage engine. This option + must be enabled in order to pass in encryption keys and + configurations. .. include:: /includes/fact-enterprise-only-admonition.rst @@ -3156,7 +3204,7 @@ Encryption Key Management Options The keyfile can contain only a single key. The key is either a 16 or 32 character string. - Requires :setting:`enableEncryption` to be ``true``. + Requires :option:`--enableEncryption`. .. include:: /includes/fact-enterprise-only-admonition.rst @@ -3171,7 +3219,7 @@ Encryption Key Management Options Include to use the key associated with the identifier as the system key. You can only use the setting the first time you enable encryption for the :binary:`~bin.mongod` instance. Requires - :setting:`enableEncryption` to be true. + :option:`--enableEncryption`. If unspecified, MongoDB will request that the KMIP server create a new key to utilize as the system key. @@ -3206,7 +3254,7 @@ Encryption Key Management Options .. versionadded:: 3.2 Hostname or IP address of the KMIP server to connect to. Requires - :option:`--enableEncryption` to be true. + :option:`--enableEncryption`. Starting in MongoDB 4.2.1 (and 4.0.14), you can specify multiple KMIP servers as a comma-separated list, e.g. @@ -3240,7 +3288,7 @@ Encryption Key Management Options Port number to use to communicate with the KMIP server. Requires :option:`--kmipServerName`. Requires - :option:`--enableEncryption` to be true. + :option:`--enableEncryption`. If specifying multiple KMIP servers with :option:`--kmipServerName`, the :binary:`~bin.mongod` will use the port specified with diff --git a/source/reference/program/mongos.txt b/source/reference/program/mongos.txt index f9c155017f2..cebc3522ee4 100644 --- a/source/reference/program/mongos.txt +++ b/source/reference/program/mongos.txt @@ -337,6 +337,10 @@ Core Options If you specify ``reopen``, you must also use :option:`--logappend`. + If :doc:`auditing ` is enabled, the + :dbcommand:`logRotate` command also rotates the audit log according + to the above parameters. For example, if :option:`--logRotate` is set + to ``rename``, the audit log will also be renamed. .. option:: --redactClientLogData @@ -1133,7 +1137,9 @@ SSL Options (Deprecated) .. option:: --sslOnNormalPorts - .. deprecated:: 2.6 Use :option:`--tlsMode requireTLS <--tlsMode>` instead. + .. deprecated:: 2.6 + + Use :option:`--tlsMode requireTLS <--tlsMode>` instead. Enables TLS/SSL for :program:`mongos`. @@ -1147,7 +1153,9 @@ SSL Options (Deprecated) .. option:: --sslMode - .. deprecated:: 4.2 Use :option:`--tlsMode ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsMode ` instead. Enables TLS/SSL or mixed TLS/SSL used for all network connections. The argument to the :option:`--sslMode` option can be one of the following: @@ -1186,7 +1194,10 @@ SSL Options (Deprecated) .. option:: --sslPEMKeyFile - .. deprecated:: 4.2 Use :option:`--tlsPEMKeyFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsPEMKeyFile ` + instead. .. note:: @@ -1207,7 +1218,10 @@ SSL Options (Deprecated) .. option:: --sslPEMKeyPassword - .. deprecated:: 4.2 Use :option:`--tlsPEMKeyPassword ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsPEMKeyPassword + ` instead. Specifies the password to de-crypt the certificate-key file (i.e. :option:`--sslPEMKeyFile`). Use the :option:`--sslPEMKeyPassword` option only if the @@ -1231,7 +1245,9 @@ SSL Options (Deprecated) .. option:: --sslClusterFile - .. deprecated:: 4.2 Use :option:`--tlsClusterFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsClusterFile ` instead. .. note:: @@ -1257,7 +1273,10 @@ SSL Options (Deprecated) .. option:: --sslClusterPassword - .. deprecated:: 4.2 Use :option:`--tlsClusterPassword ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsClusterPassword + ` instead. Specifies the password to de-crypt the x.509 certificate-key file specified with ``--sslClusterFile``. Use the :option:`--sslClusterPassword` option only @@ -1283,7 +1302,9 @@ SSL Options (Deprecated) .. option:: --sslCAFile - .. deprecated:: 4.2 Use :option:`--tlsCAFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCAFile ` instead. Specifies the :file:`.pem` file that contains the root certificate chain from the Certificate Authority. Specify the file name of the @@ -1300,7 +1321,10 @@ SSL Options (Deprecated) .. option:: --sslClusterCAFile - .. deprecated:: 4.2 Use :option:`--tlsClusterCAFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsClusterCAFile ` + instead. Specifies the :file:`.pem` file that contains the root certificate chain from the Certificate Authority used to validate the certificate @@ -1327,7 +1351,10 @@ SSL Options (Deprecated) .. option:: --sslCertificateSelector = - .. deprecated:: 4.2 Use :option:`--tlsCertificateSelector ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCertificateSelector + ` instead. .. versionadded:: 4.0 @@ -1350,7 +1377,10 @@ SSL Options (Deprecated) .. option:: --sslClusterCertificateSelector = - .. deprecated:: 4.2 Use :option:`--tlsClusterCertificateSelector ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsClusterCertificateSelector + ` instead. .. versionadded:: 4.0 @@ -1374,7 +1404,9 @@ SSL Options (Deprecated) .. option:: --sslCRLFile - .. deprecated:: 4.2 Use :option:`--tlsCRLFile ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsCRLFile ` instead. Specifies the :file:`.pem` file that contains the Certificate Revocation List. Specify the file name of the :file:`.pem` file using relative or @@ -1401,7 +1433,10 @@ SSL Options (Deprecated) .. option:: --sslAllowConnectionsWithoutCertificates - .. deprecated:: 4.2 Use :option:`--tlsAllowConnectionsWithoutCertificates ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsAllowConnectionsWithoutCertificates + ` instead. For clients that do not present certificates, :program:`mongos` bypasses TLS/SSL certificate validation when establishing the connection. @@ -1419,7 +1454,10 @@ SSL Options (Deprecated) .. option:: --sslAllowInvalidCertificates - .. deprecated:: 4.2 Use :option:`--tlsAllowInvalidCertificates ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsAllowInvalidCertificates + ` instead. Bypasses the validation checks for TLS/SSL certificates on other servers in the cluster and allows the use of invalid certificates to @@ -1438,7 +1476,10 @@ SSL Options (Deprecated) .. option:: --sslAllowInvalidHostnames - .. deprecated:: 4.2 Use :option:`--tlsAllowInvalidHostnames ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsAllowInvalidHostnames + ` instead. Disables the validation of the hostnames in TLS/SSL certificates, when connecting to other members of the replica set or sharded cluster @@ -1451,7 +1492,10 @@ SSL Options (Deprecated) .. option:: --sslDisabledProtocols - .. deprecated:: 4.2 Use :option:`--tlsDisabledProtocols ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsDisabledProtocols + ` instead. Prevents a MongoDB server running with TLS/SSL from accepting incoming connections that use a specific protocol or protocols. To @@ -1485,7 +1529,9 @@ SSL Options (Deprecated) .. option:: --sslFIPSMode - .. deprecated:: 4.2 Use :option:`--tlsFIPSMode ` instead. + .. deprecated:: 4.2 + + Use :option:`--tlsFIPSMode ` instead. Directs the :program:`mongos` to use the FIPS mode of the TLS/SSL library. Your system must have a FIPS 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/replica-configuration.txt b/source/reference/replica-configuration.txt index b9277f71dcc..9f3ff3e80bc 100644 --- a/source/reference/replica-configuration.txt +++ b/source/reference/replica-configuration.txt @@ -38,8 +38,7 @@ Replica Set Configuration Fields *Type*: string - The name of the replica set. Once set, you cannot change the - name of a replica set. + The name of the replica set. :rsconf:`_id` *must* be identical to the :setting:`replication.replSetName` or the value of `--replSet` @@ -195,17 +194,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..293d8da0d06 100644 --- a/source/reference/replication.txt +++ b/source/reference/replication.txt @@ -47,11 +47,17 @@ Replication Methods in the ``mongo`` Shell * - :method:`rs.printReplicationInfo()` - - Prints a report of the status of the replica set from the perspective of the primary. + - Prints a formatted report of the replica set status from the + perspective of the primary. + + * - :method:`rs.printSecondaryReplicationInfo()` + + - Prints a formatted report of the replica set status from the + perspective of the secondaries. * - :method:`rs.printSlaveReplicationInfo()` - - Prints a report of the status of the replica set from the perspective of the secondaries. + - .. include:: /includes/deprecated-rs.printSlaveReplicationInfo.rst * - :method:`rs.reconfig()` diff --git a/source/reference/security-client-side-automatic-json-schema.txt b/source/reference/security-client-side-automatic-json-schema.txt index 1ed8d89a253..4f22ff1ed91 100644 --- a/source/reference/security-client-side-automatic-json-schema.txt +++ b/source/reference/security-client-side-automatic-json-schema.txt @@ -229,12 +229,13 @@ and ``taxid-short`` fields for write or read operations to the .. autoencryptkeyword:: encrypt.keyId - *Array of UUID* + *Array of single UUID* The UUID of the data encryption key to use for encrypting field - values. Specify *one* string inside the array. The UUID is a BSON - `binary data `_ element of subtype - ``4``. + values. The UUID is a BSON `binary data + `_ element of subtype ``4``. + + Specify *one* string inside the array. If omitted, :ref:`mongocryptd` checks the full tree of parent fields for the nearest @@ -327,15 +328,16 @@ and ``taxid-short`` fields for write or read operations to the *Array of single UUID* - The UUID of a data encryption key. If an - :autoencryptkeyword:`encrypt` object is missing the + The UUID of a data encryption key. The UUID is a BSON `binary data + `_ element of subtype ``4``. + + Specify *one* string inside the array. + + If an :autoencryptkeyword:`encrypt` object is missing the :autoencryptkeyword:`~encrypt.keyId` field, ``mongocryptd`` searches the entire tree of parent objects to locate an :autoencryptkeyword:`encryptMetadata` object that specifies :autoencryptkeyword:`encryptMetadata.keyId`. - - The UUID is a BSON `binary data `_ - element of subtype ``4``. The data encryption key *must* exist in the key vault specified as part of the auto encryption :ref:`configuration options diff --git a/source/reference/text-search-languages.txt b/source/reference/text-search-languages.txt index ceb3d9eb407..cb91cf761b3 100644 --- a/source/reference/text-search-languages.txt +++ b/source/reference/text-search-languages.txt @@ -74,5 +74,7 @@ language name: .. include:: /includes/fact-text-search-language-none.rst +.. include:: /includes/fact-atlas-search-languages.rst + .. seealso:: :doc:`/tutorial/specify-language-for-text-index` 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 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/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 diff --git a/source/release-notes/3.4-downgrade-replica-set.txt b/source/release-notes/3.4-downgrade-replica-set.txt index f234a36c580..505be55506b 100644 --- a/source/release-notes/3.4-downgrade-replica-set.txt +++ b/source/release-notes/3.4-downgrade-replica-set.txt @@ -93,8 +93,9 @@ 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. + 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 a97e4fb5664..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, - use :method:`rs.secondaryOk()` 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. diff --git a/source/release-notes/3.6-changelog.txt b/source/release-notes/3.6-changelog.txt index d39f1361842..8ba2c9352b3 100644 --- a/source/release-notes/3.6-changelog.txt +++ b/source/release-notes/3.6-changelog.txt @@ -10,6 +10,10 @@ :depth: 1 :class: twocols +.. include:: /includes/changelogs/releases/3.6.23.rst + +.. 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 af45ce2500d..c7fb9cc7e8d 100644 --- a/source/release-notes/3.6.txt +++ b/source/release-notes/3.6.txt @@ -13,8 +13,42 @@ Release Notes for MongoDB 3.6 Minor Releases -------------- -3.6.21 - Upcoming -~~~~~~~~~~~~~~~~~ +3.6.23 - Mar 19, 2021 +~~~~~~~~~~~~~~~~~~~~~ + +Issues Fixed: + +- :issue:`SERVER-40361`: Reduce memory footprint of plan cache entries +- :issue:`SERVER-46686`: Explain does not respect maxTimeMS +- :issue:`SERVER-50267`: Set output limit for 'rawMongoProgramOutput()' +- :issue:`TOOLS-2803`: [v3.6] Add --config option for password values + +- `All JIRA issues closed in 3.6.23 + `_ + +- :ref:`3.6.23-changelog` + +3.6.22 - Feb 8, 2021 +~~~~~~~~~~~~~~~~~~~~ + +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 +~~~~~~~~~~~~~~~~~~~~~ Issues Fixed: @@ -24,8 +58,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 diff --git a/source/release-notes/4.0-changelog.txt b/source/release-notes/4.0-changelog.txt index d9e9f44c4e4..2fec3e71fbd 100644 --- a/source/release-notes/4.0-changelog.txt +++ b/source/release-notes/4.0-changelog.txt @@ -10,6 +10,10 @@ :depth: 1 :class: twocols +.. include:: /includes/changelogs/releases/4.0.23.rst + +.. 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 0e2ff2f5ef6..760d5cc7b31 100644 --- a/source/release-notes/4.0.txt +++ b/source/release-notes/4.0.txt @@ -13,10 +13,55 @@ Release Notes for MongoDB 4.0 Minor Releases -------------- +.. _4.0.23-release-notes: + +4.0.23 - Feb 22, 2021 +~~~~~~~~~~~~~~~~~~~~~ + +Issues fixed: + +- :issue:`SERVER-40361` Reduce memory footprint of plan cache entries +- :issue:`SERVER-46740` establishCursors() must always drain the + AsyncRequestsSender::_baton +- :issue:`SERVER-46876` During the eviction pressure, we should quit the + compact operation instead of crashing the process +- :issue:`SERVER-50305` ARS::next() does not respect OperationContext + deadline +- :issue:`SERVER-52879` Periodic operation latency spikes every 5 + minutes due to closing idle cached WT sessions + +- `All JIRA issues closed in 4.0.23 + `_ + +- :ref:`4.0.23-changelog` + +.. _4.0.22-release-notes: + +4.0.22 - Jan 4, 2021 +~~~~~~~~~~~~~~~~~~~~ + +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 - Upcoming -~~~~~~~~~~~~~~~~~ +4.0.21 - Nov 10, 2020 +~~~~~~~~~~~~~~~~~~~~~ Issues fixed: @@ -37,7 +82,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 diff --git a/source/release-notes/4.2-changelog.txt b/source/release-notes/4.2-changelog.txt index 91a8e423151..3562f4443ec 100644 --- a/source/release-notes/4.2-changelog.txt +++ b/source/release-notes/4.2-changelog.txt @@ -10,6 +10,12 @@ :depth: 1 :class: singlecol +.. include:: /includes/changelogs/releases/4.2.13.rst + +.. include:: /includes/changelogs/releases/4.2.12.rst + +.. 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-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:: diff --git a/source/release-notes/4.2.txt b/source/release-notes/4.2.txt index 8e0b763c75f..d183e568897 100644 --- a/source/release-notes/4.2.txt +++ b/source/release-notes/4.2.txt @@ -17,6 +17,77 @@ Release Notes for MongoDB 4.2 Minor Releases -------------- +.. _4.2.13-release-notes: + +4.2.13 - Mar 19, 2021 +~~~~~~~~~~~~~~~~~~~~~ + +Issues fixed in 4.2.13: + + +- :issue:`SERVER-46686`: Explain does not respect maxTimeMS + +- :issue:`SERVER-46740`: establishCursors() must always drain the AsyncRequestsSender::_baton + +- :issue:`SERVER-46876`: During the eviction pressure, we should quit the compact operation instead of crashing the process + +- :issue:`SERVER-53394`: Make ShardingTaskExecutorPoolReplicaSetMatching default to disabled for MongoD + +- :issue:`WT-7028`: Sweep thread shouldn't lock during checkpoint gathering handles + +- `All JIRA issues closed in 4.2.13 + `__ + +- :ref:`4.2.13-changelog` + +.. _4.2.12-release-notes: + +4.2.12 - Jan 22, 2021 +~~~~~~~~~~~~~~~~~~~~~ + +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 +~~~~~~~~~~~~~~~~~~~~~ + +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 @@ -498,8 +569,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 @@ -1115,7 +1186,7 @@ FIPS Mode Starting in version 4.2, -- For the following command-line tools, if the write concern is +- For the following Database Tools, if the write concern is specified in both the ``--uri`` connection string and the ``--writeConcern`` option, the ``--writeConcern`` option overrides the one in the connection string: @@ -1124,7 +1195,7 @@ Starting in version 4.2, - :binary:`~bin.mongoimport` - :binary:`~bin.mongorestore` -- For the following command-line tools, if the read preference is +- For the following Database Tools, if the read preference is specified in both the ``--uri`` connection string and the ``--readPreference`` option, the ``--readPreference`` option overrides the one in the connection string: diff --git a/source/release-notes/4.4-changelog.txt b/source/release-notes/4.4-changelog.txt index c6d49bac275..4079645227a 100644 --- a/source/release-notes/4.4-changelog.txt +++ b/source/release-notes/4.4-changelog.txt @@ -10,6 +10,10 @@ :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 .. include:: /includes/changelogs/releases/4.4.1.rst diff --git a/source/release-notes/4.4-compatibility.txt b/source/release-notes/4.4-compatibility.txt index 567a2ca23d9..e1e193d2155 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`` 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 consistency 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-consistent-sorting` for more information. + Map Reduce Changes ------------------ diff --git a/source/release-notes/4.4.txt b/source/release-notes/4.4.txt index c752c39ed33..f932905e151 100644 --- a/source/release-notes/4.4.txt +++ b/source/release-notes/4.4.txt @@ -13,10 +13,52 @@ Release Notes for MongoDB 4.4 Minor Releases -------------- +.. _4.4.4-release-notes: + +4.4.4 - Feb 16, 2021 +~~~~~~~~~~~~~~~~~~~~ + +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 +~~~~~~~~~~~~~~~~~~~ + +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 - Upcoming -~~~~~~~~~~~~~~~~ +4.4.2 - Nov 18, 2020 +~~~~~~~~~~~~~~~~~~~~ Issues fixed: @@ -975,6 +1017,27 @@ Transactions - :doc:`/core/transactions` - :ref:`transactions-operations-ref` +Sorting +------- + +``$sort`` 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 consistency 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-consistent-sorting` for more information. + Security Improvements --------------------- @@ -2111,8 +2174,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 @@ -2175,8 +2238,8 @@ Known Issues - :issue:`SERVER-45042`: MongoDB Server Installation MSI for both Community and Enterprise no longer contain binaries for - the :db-tools:`MongoDB Database Tools <>`. For more information, see - :ref:`4.4-tools-compatibility`. + the :db-tools:`MongoDB Database Tools <>`. For more information, + see :ref:`4.4-tools-compatibility`. - Unresolved @@ -2186,14 +2249,14 @@ Known Issues reads or :ref:`hedged reads ` may not be routed to a near shard replica. - - Unresolved + - Fixed in 4.4.1 * - 4.4.0 - :issue:`WT-6623`: Set the connection level file id in recovery - file scan + file scan. - - Unresolved + - Fixed in 4.4.1 Report an Issue --------------- 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 diff --git a/source/text-search.txt b/source/text-search.txt index b495e198a18..b40f7780f9c 100644 --- a/source/text-search.txt +++ b/source/text-search.txt @@ -10,8 +10,6 @@ Text Search :depth: 1 :class: singlecol -.. include:: /includes/fact-atlas-search-banner.rst - Overview -------- @@ -108,6 +106,8 @@ MongoDB supports text search for various languages. See :doc:`/reference/text-search-languages` for a list of supported languages. +.. include:: /includes/fact-atlas-search-languages.rst + .. toctree:: :titlesonly: :hidden: diff --git a/source/tutorial.txt b/source/tutorial.txt index 2a66a3414be..1e95c25530b 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 @@ -61,6 +61,7 @@ Replica Sets - :doc:`/tutorial/reconfigure-replica-set-with-unavailable-members` - :doc:`/tutorial/recover-data-following-unexpected-shutdown` - :doc:`/tutorial/troubleshoot-replica-sets` +- :doc:`/tutorial/rename-unsharded-replica-set` Sharding ~~~~~~~~ diff --git a/source/tutorial/change-oplog-size.txt b/source/tutorial/change-oplog-size.txt index 3eaf32db930..dd3f0400e15 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 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. For clusters enforcing :ref:`authentication `, authenticate as a user with the :authaction:`compact` privilege diff --git a/source/tutorial/configure-auditing.txt b/source/tutorial/configure-auditing.txt index 25db81796cd..346db5865ef 100644 --- a/source/tutorial/configure-auditing.txt +++ b/source/tutorial/configure-auditing.txt @@ -151,7 +151,10 @@ a file with the relative path name of ``data/db/auditLog.json``: in :doc:`/administration/security-checklist` to prevent unauthorized access. -The audit file rotates at the same time as the server log file. +The audit file is :dbcommand:`rotated ` at the same time as +the server log file. Rotation specifics may be configured with the +:setting:`systemLog.logRotate` configuration file option or the +:option:`--logRotate ` command-line option. You may also specify these options in the :doc:`configuration file `: @@ -207,7 +210,10 @@ a BSON file with the relative path name of ``data/db/auditLog.bson``: in :doc:`/administration/security-checklist` to prevent unauthorized access. -The audit file rotates at the same time as the server log file. +The audit file is :dbcommand:`rotated ` at the same time as +the server log file. Rotation specifics may be configured with the +:setting:`systemLog.logRotate` configuration file option or the +:option:`--logRotate ` command-line option. You may also specify these options in the :doc:`configuration file `: 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 diff --git a/source/tutorial/control-results-of-text-search.txt b/source/tutorial/control-results-of-text-search.txt index 168bc2dca0e..12fde342f14 100644 --- a/source/tutorial/control-results-of-text-search.txt +++ b/source/tutorial/control-results-of-text-search.txt @@ -77,3 +77,10 @@ each other. For instance, a term match in the ``content`` field has: - ``10`` times (i.e. ``10:1``) the impact as a term match in the ``about`` field. + +.. note:: + + For data hosted on MongoDB Atlas, + :atlas:`Atlas Search ` provides more robust custom + scoring than ``text`` indexes. To learn more, see the Atlas Search + :atlas:`Scoring ` documentation. 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-os-x.txt b/source/tutorial/install-mongodb-on-os-x.txt index 10827d57043..086f37c5428 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,112 @@ 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 XCode -````````````` -.. container:: +- Install the Xcode command-line tools by running the following + command in your macOS Terminal: - 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. + .. code-block:: sh + + xcode-select --install Install Homebrew ```````````````` -.. container:: +macOS does not include the Homebrew ``brew`` package by default. + +- Install ``brew`` using the official + `Homebrew installation instructions `_. - OSX does not include the Homebrew ``brew`` package by default. - Install ``brew`` using the - `official instructions `_. +.. _install: -Tap the MongoDB Homebrew Tap -```````````````````````````` +Installing MongoDB {+version+} |edition| Edition +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. container:: +Follow these steps to install MongoDB |edition| Edition using Homebrew's +``brew`` package manager. Be sure that you have followed the +:ref:`installation prerequisites ` above before proceeding. - Issue the following from the terminal to - tap the official - `MongoDB Homebrew Tap `_: +#. 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 mongodb/brew + brew tap mongodb/brew -.. _install: + If you have already done this for a previous installation of MongoDB, + you can skip this step. -Procedure -~~~~~~~~~ +#. To install MongoDB, run the following command in your macOS Terminal + application: -Follow these steps to install MongoDB |edition| Edition using the -third-party ``brew`` package manager. + .. code-block:: sh -.. container:: + brew install mongodb-community@{+version+} - From a terminal, issue the following: + 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. - .. code-block:: sh +.. tip:: - brew install mongodb-community@{+version+} + 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: + +- The :binary:`~bin.mongod` server +- The :binary:`~bin.mongos` sharded cluster query router +- The :binary:`~bin.mongo` shell + +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 - .. tip:: - - If you have previously installed an older version of the formula, - you may encounter a ChecksumMismatchError. To resolve, see - :ref:`troubleshooting-checksumerror`. + * - + - Intel Processor + - Apple M1 Processor - In addition to the :doc:`binaries `, the install - creates: + * - :doc:`configuration file ` + - ``/usr/local/etc/mongod.conf`` + - ``/opt/homebrew/etc/mongod.conf`` - - the :doc:`configuration file ` - (:file:`/usr/local/etc/mongod.conf`) + * - :setting:`log directory ` + - ``/usr/local/var/log/mongodb`` + - ``/opt/homebrew/var/log/mongodb`` + + * - :setting:`data directory ` + - ``/usr/local/var/mongodb`` + - ``/opt/homebrew/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 - - the :setting:`log directory path ` (``/usr/local/var/log/mongodb``) + brew --prefix - - 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 +175,131 @@ 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: + - For macOS running Intel processors: - .. 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. + - For macOS running on `Apple M1 processors + `__: - 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. + .. code-block:: sh - .. admonition:: macOS Prevents ``mongod`` From Opening - :class: note + mongod --config /opt/homebrew/etc/mongod.conf --fork - 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: + 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. - - 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. +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. - To verify that MongoDB is running, search for ``mongod`` in your - running processes: +.. admonition:: macOS Prevents ``mongod`` From Opening + :class: note - .. code-block:: sh + .. include:: /includes/extracts/macos-prevent-launch-mongod.rst + +To verify that MongoDB is running, perform one of the following: + +- If you started MongoDB **as a macOS service**: + + .. 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 + + .. include:: /includes/extracts/macos-prevent-launch-mongo.rst + +For information on CRUD (Create,Read,Update,Delete) operations, see: + +- :doc:`/tutorial/insert-documents` +- :doc:`/tutorial/query-documents` +- :doc:`/tutorial/update-documents` +- :doc:`/tutorial/remove-documents` - mongo +.. _brew-installs-dbtools: - .. admonition:: macOS Prevents ``mongo`` From Opening - :class: note +Using the MongoDB Database Tools +-------------------------------- - 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: +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 +315,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: 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 -------------- diff --git a/source/tutorial/manage-mongodb-processes.txt b/source/tutorial/manage-mongodb-processes.txt index 6ff6f86a97b..2562d578d73 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 @@ -221,6 +223,8 @@ process, use the following command: The resulting backtrace data is written to the :binary:`~bin.mongod` logfile as configured with :option:`--logpath `. +.. _stop-replica-set: + Stop a Replica Set ------------------ diff --git a/source/tutorial/manage-the-database-profiler.txt b/source/tutorial/manage-the-database-profiler.txt index e60062eab7e..625c0d024d1 100644 --- a/source/tutorial/manage-the-database-profiler.txt +++ b/source/tutorial/manage-the-database-profiler.txt @@ -31,8 +31,7 @@ When enabled, profiling has an effect on database performance and disk use. See :ref:`Database Profiler Overhead` for more information. This document outlines a number of key administration options for the -database profiler. For additional related information, consider the -following resources: +database profiler. For additional related information, see: - :doc:`/reference/database-profiler` - :doc:`Profile Command ` @@ -53,7 +52,7 @@ The following profiling levels are available: Enable and Configure Database Profiling --------------------------------------- -You can enable database profiling for :binary:`~bin.mongod` instances . +You can enable database profiling for :binary:`~bin.mongod` instances. This section uses the :binary:`~bin.mongo` shell helper :method:`db.setProfilingLevel()` helper to enable profiling. For @@ -86,6 +85,24 @@ The ``"ok" : 1`` key-value pair indicates the operation succeeded: To verify the new setting, see the :ref:`database-profiling-view-status` section. +.. include:: /includes/log-changes-to-database-profiler.rst + +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 +213,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 +345,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 +362,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 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/rename-unsharded-replica-set.txt b/source/tutorial/rename-unsharded-replica-set.txt new file mode 100644 index 00000000000..bf3ddcb18c6 --- /dev/null +++ b/source/tutorial/rename-unsharded-replica-set.txt @@ -0,0 +1,31 @@ +==================== +Rename a Replica Set +==================== + +.. default-domain:: mongodb + +.. contents:: On this page + :local: + :backlinks: none + :depth: 1 + :class: singlecol + +To rename a replica set, you must shut down all members of the replica +set, then configure each member's ``local`` database with the new +replica set name. + +This procedure requires downtime. + +Prerequisites +------------- + +- Ensure your replica set is not sharded. The renaming procedure + is for unsharded replica sets only. + +- Before renaming a replica set, perform a full + :doc:`backup of your MongoDB deployment `. + +Procedure +--------- + +.. include:: /includes/steps/rename-unsharded-replica-set.rst diff --git a/source/tutorial/resync-replica-set-member.txt b/source/tutorial/resync-replica-set-member.txt index 140cc20db15..105d82d2e84 100644 --- a/source/tutorial/resync-replica-set-member.txt +++ b/source/tutorial/resync-replica-set-member.txt @@ -79,10 +79,16 @@ perform an initial sync by restarting the instance without the contents of the method from the :binary:`~bin.mongo` shell or on Linux systems, the :option:`mongod --shutdown` option. -2. Delete all data and sub-directories from the member's - :setting:`~storage.dbPath` directory. Consider making a backup first. +2. (Optional) Make a backup of all data and sub-directories from the + member's :setting:`~storage.dbPath` directory. If a full backup is + not required, consider backing up just the ``diagnostic.data`` + directory to preserve potentially-useful troubleshooting data in the + event of an issue. See :ref:`ftdc-stub` for more information. -3. :doc:`Start the mongod process `, +3. Delete all data and sub-directories from the member's + :setting:`~storage.dbPath` directory. + +4. :doc:`Start the mongod process `, specifying :ref:`cli-mongod-replica-set` as appropriate. At this point, the :binary:`~bin.mongod` performs an initial sync. The length of diff --git a/source/tutorial/rotate-log-files.txt b/source/tutorial/rotate-log-files.txt index 009a0281fac..4d42e118661 100644 --- a/source/tutorial/rotate-log-files.txt +++ b/source/tutorial/rotate-log-files.txt @@ -13,32 +13,31 @@ Rotate Log Files Overview -------- -When used with the ``--logpath`` option or :setting:`systemLog.path` setting, -:binary:`~bin.mongod` and :binary:`~bin.mongos` instances report -a live account of all activity and operations to a log file. -When reporting activity data to a log file, by default, MongoDB only rotates logs -in response to the :dbcommand:`logRotate` command, or when the -:binary:`~bin.mongod` or :binary:`~bin.mongos` process receives a ``SIGUSR1`` -signal from the operating system. +When used with the ``--logpath`` option or :setting:`systemLog.path` +setting, :binary:`~bin.mongod` and :binary:`~bin.mongos` instances +report a live account of all activity and operations to a log file. +When reporting activity data to a log file, by default, MongoDB only +rotates logs in response to the :dbcommand:`logRotate` command, or when +the :binary:`~bin.mongod` or :binary:`~bin.mongos` process receives a +``SIGUSR1`` signal from the operating system. MongoDB's standard log rotation approach archives the current log file and starts a new one. To do this, the :binary:`~bin.mongod` or -:binary:`~bin.mongos` instance renames the current log file by appending a -UTC timestamp to the filename, in :term:`ISODate` format. It then +:binary:`~bin.mongos` instance renames the current log file by appending +a UTC timestamp to the filename, in :term:`ISODate` format. It then opens a new log file, closes the old log file, and sends all new log entries to the new log file. -You can also configure MongoDB to support the Linux/Unix -logrotate utility -by setting :setting:`systemLog.logRotate` or +You can also configure MongoDB to support the Linux/Unix ``logrotate`` +utility by setting :setting:`systemLog.logRotate` or ``--logRotate`` to ``reopen``. With ``reopen``, :binary:`~bin.mongod` or :binary:`~bin.mongos` closes the log file, and then reopens a log file with the same name, expecting that another process renamed the file prior to rotation. Finally, you can configure :binary:`~bin.mongod` to send log data to the -``syslog`` using the :option:`--syslog ` option. In this case, you can -take advantage of alternate logrotation tools. +``syslog`` using the :option:`--syslog ` option. In +this case, you can take advantage of alternate log rotation tools. .. seealso:: For information on logging, see the :ref:`monitoring-standard-loggging` section. @@ -50,8 +49,8 @@ By default, MongoDB uses the ``--logRotate rename`` behavior. With ``rename``, :binary:`~bin.mongod` or :binary:`~bin.mongos` renames the current log file by appending a UTC -timestamp to the filename, opens a new log file, closes the old log file, -and sends all new log entries to the new log file. +timestamp to the filename, opens a new log file, closes the old log +file, and sends all new log entries to the new log file. .. include:: /includes/steps/log-rotate-rename.rst @@ -66,8 +65,8 @@ the log file following the typical Linux/Unix log rotate behavior. Syslog Log Rotation ------------------- -With syslog log rotation, :binary:`~bin.mongod` sends log data to the syslog -rather than writing it to a file. +With syslog log rotation, :binary:`~bin.mongod` sends log data to the +syslog rather than writing it to a file. Starting in version 4.2, MongoDB includes the :ref:`component ` in its log messages to ``syslog``. @@ -78,8 +77,18 @@ Forcing a Log Rotation with ``SIGUSR1`` --------------------------------------- For Linux and Unix-based systems, you can use the ``SIGUSR1`` signal -to rotate the logs for a single process, as in the following: +to rotate the logs for a single process. + +For example, if a running :binary:`~bin.mongod` instance has a +process ID (PID) of ``2200``, the following command rotates the log +file for that instance on Linux: .. code-block:: sh - kill -SIGUSR1 + kill -SIGUSR1 2200 + +Interaction with Audit Logs +--------------------------- + +If :doc:`auditing ` is enabled, the +:dbcommand:`logRotate` command also rotates the audit log. diff --git a/source/tutorial/text-search-in-aggregation.txt b/source/tutorial/text-search-in-aggregation.txt index 7b2a78693f4..c7edb2b65a5 100644 --- a/source/tutorial/text-search-in-aggregation.txt +++ b/source/tutorial/text-search-in-aggregation.txt @@ -16,7 +16,7 @@ In the aggregation pipeline, text search is available via the use of the :query:`$text` query operator in the :pipeline:`$match` stage. Restrictions -~~~~~~~~~~~~ +------------ For general :query:`$text` operator restrictions, see :ref:`operator restrictions `. @@ -36,7 +36,7 @@ restrictions: .. |sort-object| replace:: :pipeline:`$sort` pipeline Text Score -~~~~~~~~~~ +---------- .. include:: /includes/fact-text-search-score.rst @@ -132,3 +132,8 @@ matching documents in the :pipeline:`$group` stage. { $group: { _id: null, views: { $sum: "$views" } } } ] ) + +``$search`` Stage in Atlas Search +--------------------------------- + +.. include:: /includes/fact-atlas-search-search-stage.rst 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/troubleshoot-replica-sets.txt b/source/tutorial/troubleshoot-replica-sets.txt index 0807d029207..21f6c017dc0 100644 --- a/source/tutorial/troubleshoot-replica-sets.txt +++ b/source/tutorial/troubleshoot-replica-sets.txt @@ -45,7 +45,7 @@ will be inconsistent. To check the current length of replication lag: - In a :binary:`~bin.mongo` shell connected to the primary, call the - :method:`rs.printSlaveReplicationInfo()` method. + :method:`rs.printSecondaryReplicationInfo()` method. Returns the ``syncedTo`` value for each member, which shows the time when the last oplog entry was written to the @@ -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. 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