Tous les produits
Search
Centre de documentation

ApsaraDB for MongoDB:Versions et moteurs de stockage

Dernière mise à jour :Sep 17, 2026

Cette rubrique décrit les versions, les moteurs de stockage et la compatibilité d'ApsaraDB for MongoDB afin de vous aider à choisir l'instance la mieux adaptée à vos besoins métier.

Versions prises en charge

ApsaraDB for MongoDB prend en charge les versions suivantes :

Remarque

Vous pouvez mettre à jour manuellement la version majeure de la base de données d'une instance en cours d'exécution. En revanche, il n'est pas possible de revenir à une version antérieure. Pour plus d'informations, consultez la page Mise à niveau de la version majeure de la base de données.

Moteurs de stockage

Moteur de stockage

Scénario

Description

WiredTiger

Moteur de stockage par défaut pour la plupart des charges de travail.

Il organise les données à l'aide d'une structure B-tree et offre des améliorations significatives des performances par rapport au moteur de stockage MMAPv1 utilisé dans les versions antérieures de MongoDB. Il prend également en charge la compression des données pour réduire les coûts de stockage.

Compatibilité entre les versions et les moteurs de stockage

Moteur de stockage

MongoDB 4.4 et versions ultérieures

MongoDB 4.2

MongoDB 4.0

MongoDB 3.4 (Obsolète)

WiredTiger

  • instance de jeu de réplicas

  • instance de cluster fragmenté

  • instance de jeu de réplicas

  • instance de cluster fragmenté

  • instance autonome

  • instance de jeu de réplicas

  • instance de cluster fragmenté

  • instance autonome

  • instance de jeu de réplicas

  • instance de cluster fragmenté

MongoDB 8.3

Cette version introduit de nouvelles fonctionnalités, notamment une agrégation améliorée, un processus de gestion du sharding refondu, des journaux de requêtes lentes en cours d'exécution et un suivi de la mémoire au niveau des requêtes. Elle apporte également des optimisations en matière de performances, de paramètres système, d'index et de séries temporelles.

  • Agrégation améliorée : ajoute l'accès aux index de tableaux, de nouvelles expressions telles que $hash et $hexHash, ainsi qu'une conversion de type améliorée pour $toString et $convert.

  • Processus de gestion du sharding refondu : la commande removeShard est obsolète et remplacée par un processus en quatre étapes utilisant les commandes startShardDraining, stopShardDraining, shardDrainingStatus et commitShardRemoval. Ce nouveau processus prend en charge les opérations de pause et de reprise.

  • Surveillance et diagnostic améliorés : ajoute des journaux de requêtes lentes en cours d'exécution, un suivi de la mémoire au niveau des requêtes (inUseTrackedMemBytes et peakTrackedMemBytes) et une sortie à la demande pour serverStatus.

  • Performances et paramètres système : ajoute de nouveaux paramètres pour le contrôle des ressources de connexion pré-authentifiées, la récupération automatique des ressources sous pression de cache et la sélection de services tenant compte de la surcharge.

  • Modifications des index : augmente la valeur par défaut de 2dsphereVersion à 4, en privilégiant GeoJSON par rapport aux paires de coordonnées héritées.

Pour plus d'informations, consultez la page Nouveautés de MongoDB 8.3.

MongoDB 8.0

Cette version introduit une mise à niveau de TCMalloc, des performances optimisées pour la réplication et le resharding, ainsi que des améliorations apportées au sharding, à la journalisation, à l'agrégation et à la sécurité.

  • TCMalloc mis à niveau

    Le TCMalloc mis à niveau utilise des caches par CPU au lieu de caches par thread pour réduire la fragmentation de la mémoire et améliorer la résilience de la base de données sous de fortes charges de travail. De plus, le TCMalloc mis à niveau crée un thread d'arrière-plan qui tente de libérer la mémoire vers le système d'exploitation chaque seconde.

  • Performances de réplication

    À partir de MongoDB 8.0, lorsque writeConcern est défini sur majority, MongoDB accuse réception d'une écriture dès qu'une majorité des membres du jeu de réplicas ont écrit les entrées oplog correspondantes, sans attendre l'application des modifications. Cette modification améliore les performances d'écriture en mode majority.

    Les membres secondaires écrivent et appliquent désormais les lots oplog en parallèle. Pendant qu'un thread d'écriture lit les nouvelles entrées oplog depuis le membre principal et les écrit dans l'oplog local, un thread d'application applique ces modifications de manière asynchrone à la base de données locale. Cette modification améliore le débit de réplication sur les membres secondaires.

  • Performances de resharding

    MongoDB 8.0 introduit l'option forceRedistribution, qui permet de reshader une collection avec la même clé de shard, en redistribuant les données sur de nouveaux shards. Ce processus est nettement plus rapide que la migration de chunks basée sur les plages et peut être utilisé avec l'option zones pour déplacer les données vers des zones spécifiques.

  • Sharding

    • Le sharding haché crée désormais un chunk par shard par défaut, contre deux chunks dans les versions antérieures à MongoDB 8.0.

    • La commande dbhash peut désormais s'exécuter directement sur un shard.

    • Les commandes findAndModify et deleteOne peuvent désormais utiliser une clé de shard partielle dans le filtre de requête.

    • Lorsque vous utilisez la commande updateOne avec upsert défini sur true sur une collection fragmentée, le filtre de requête n'a plus besoin d'inclure la clé de shard complète.

    • Vous pouvez désormais défragmenter une collection existante en utilisant la commande unshardCollection ou la méthode sh.unshardCollection(). Cette opération déplace tous les documents de la collection vers un shard spécifié ou vers le shard le moins chargé.

    • La commande moveCollection permet désormais de déplacer une collection non fragmentée vers un shard spécifique, sans être limitée au shard principal. Toutefois, les collections de séries temporelles et les collections avec chiffrement interrogeable ne peuvent pas être déplacées. Cette opération peut bloquer brièvement les écritures dans la collection pendant environ deux secondes.

    • Cette version introduit de nouvelles commandes de base de données et assistants mongosh :

      Commande

      Assistant Mongosh

      Description

      moveCollection

      sh.moveCollection()

      Déplace une collection non fragmentée vers un shard spécifique.

      unshardCollection

      sh.unshardCollection()

      Défragmente une collection fragmentée existante et déplace ses données vers un shard spécifique.

      abortMoveCollection

      sh.abortMoveCollection()

      Arrête une opération moveCollection en cours.

      abortUnshardCollection

      sh.abortUnshardCollection()

      Arrête une opération unshardCollection en cours.

      Aucune

      sh.shardAndDistributeCollection()

      Fragmente une collection et redistribue immédiatement les données à l'aide de la clé de shard fournie.

      L'exécution de cet assistant équivaut à exécuter shardCollection puis reshardCollection de manière séquentielle et vise à accélérer le déplacement des données.

  • Journalisation

    Le journal des requêtes lentes inclut désormais un champ workingMillis, qui indique le temps pendant lequel une opération a été activement exécutée.

    Contrairement à durationMillis, qui mesure la latence totale de l'opération, workingMillis n'inclut pas le temps passé à attendre des ressources, telles que des verrous ou le contrôle de flux.

  • Agrégation

    • Conversion binData

      L'opérateur $convert prend désormais en charge les conversions suivantes :

      • Convertir des valeurs de chaîne en valeurs binData.

      • Convertir des valeurs binData en valeurs de chaîne.

      De plus, l'expression $toUUID fournit une syntaxe simplifiée pour convertir des chaînes en valeurs UUID.

    • $queryStats

      L'étape $queryStats renvoie des statistiques pour les requêtes journalisées et améliore le suivi et le reporting des métriques dans un flux de changement.

  • Sécurité

    • Chiffrement interrogeable

      Vous pouvez utiliser $lt, $lte, $gt et $gte pour effectuer des requêtes de plage sur des champs chiffrés.

    • File d'attente d'entrée

      MongoDB 8.0 introduit une nouvelle file d'attente pour le contrôle d'admission d'entrée (ingressAdmissionControllerTicketPoolSize). Les opérations entrant dans la base de données depuis le réseau passent par cette file d'attente d'entrée.

      Par défaut, la file d'attente d'entrée est illimitée, mais vous pouvez configurer sa taille maximale.

  • Autres optimisations

    • Cette version introduit une nouvelle Forme de requête. La forme de requête précédente est désormais appelée Forme de requête du cache de plan. L'optimiseur de requêtes utilise également les Paramètres de requête comme entrée supplémentaire, ce qui affecte la sélection finale du plan de requête.

      • setQuerySettings ajoute des paramètres de requête :

        • Vous pouvez utiliser cette commande pour spécifier un index à sélectionner. MongoDB 8.0 rend obsolète l'utilisation de planCacheSetFilter pour définir un index filter.

        • Vous pouvez utiliser cette commande pour configurer la limitation de débit. L'option reject vous permet de rejeter une forme de requête spécifique.

      • removeQuerySettings supprime les paramètres de requête.

      • $querySettings affiche les paramètres de requête.

    • La commande explain() renvoie désormais le temps passé sur l'optimisation du plan de requête en millisecondes via queryPlanner.optimizationTimeMillis.

    • Le nouveau paramètre defaultMaxTimeMS spécifie la limite de temps par défaut en millisecondes pour qu'une seule opération de lecture se termine.

      • Opérations applicables :

        • find

        • aggregate (à l'exclusion des étapes $merge et $out)

        • count

        • distinct

        • dbHash

      • Si un client spécifie maxTimeMS, defaultMaxTimeMS est ignoré pour cette opération.

    • La nouvelle commande bulkWrite vous permet d'effectuer plusieurs opérations d'insertion, de mise à jour et de suppression sur plusieurs collections en une seule requête.

    • La commande updateOne prend désormais en charge l'option sort.

    • Vous pouvez désormais créer un index TTL sur une collection plafonnée.

    • Les insertions groupées non transactionnelles sont désormais regroupées en une seule entrée oplog au lieu de générer une entrée distincte pour chaque insertion. Tous les documents insérés partagent le même clusterTime dans les événements de flux de changement. Cette modification améliore les performances des insertions groupées et aide à prévenir le retard de réplication qui pourrait survenir lorsque les membres secondaires rejouent plusieurs entrées oplog.

    • Les opérations DDL concurrentes peuvent désormais s'exécuter sur différentes collections au sein de la même base de données.

    • L'ajout ou la suppression de shards est bloqué tant qu'une opération DDL modifiant une collection, telle que reshardCollection, est en cours d'exécution sur le cluster. Vous ne pouvez effectuer ces actions qu'une fois l'opération DDL terminée.

    • Les créations d'index signalent désormais les erreurs plus rapidement et offrent une meilleure résilience aux pannes.

      Comportement

      MongoDB 8.0

      Avant MongoDB 8.0

      Lorsqu'une création d'index s'arrête en raison d'une erreur

      Les erreurs d'index, à l'exception des erreurs de clé en double, détectées lors de la phase d'analyse de la collection sont renvoyées immédiatement, arrêtant la création de l'index.

      MongoDB 8.0 vous aide à diagnostiquer plus rapidement les erreurs d'index. Par exemple, si un format de valeur d'index incompatible est détecté, l'erreur est renvoyée immédiatement.

      Les erreurs d'index détectées lors de l'analyse de la collection étaient signalées lors de la phase de validation à la fin de la création de l'index.

      Par rapport à MongoDB 8.0, une erreur de création d'index pouvait prendre beaucoup plus de temps à être renvoyée car elle n'était signalée que lors de la phase de validation.

      Résilience

      Un membre secondaire peut demander au membre principal d'arrêter une création d'index si une erreur se produit. Cela améliore la résilience du déploiement en empêchant le membre secondaire de planter.

      Une demande d'arrêt d'une création d'index n'est pas toujours faisable. Si un membre a déjà voté pour valider l'index, le membre secondaire ne peut pas demander l'arrêt de la création et plantera, similaire au comportement dans MongoDB 7.0 et versions antérieures.

      Les erreurs de création d'index pouvaient provoquer le plantage des membres secondaires.

      Espace disque

      Une création d'index est automatiquement abandonnée si l'espace disque disponible tombe en dessous de la valeur minimale spécifiée dans le paramètre indexBuildMinAvailableDiskSpaceMB.

      La création d'index ne s'arrête pas si le membre a déjà voté pour valider l'index.

      Les créations d'index étaient également abandonnées si l'espace disque était insuffisant.

MongoDB 7.0

Cette version introduit de nouvelles fonctionnalités telles que le chiffrement interrogeable, la vérification de la cohérence des métadonnées de shard, les requêtes échantillonnées et l'analyse de la clé de shard (analyzeShardKey), ainsi que l'AutoMerger. Elle inclut également des améliorations et des optimisations pour le sharding, les collections de séries temporelles, l'agrégation et la sécurité.

  • Chiffrement interrogeable

    Le chiffrement interrogeable était disponible en tant que fonctionnalité en aperçu dans MongoDB 6.0. Dans MongoDB 7.0, cette fonctionnalité est désormais généralement disponible (GA). Pour plus d'informations, consultez la page Chiffrement interrogeable.

  • Vérification de la cohérence des métadonnées de shard

    MongoDB 7.0 introduit la commande checkMetadataConsistency pour vérifier les incohérences de métadonnées entre différents shards. Ajoutez cette vérification à vos procédures de maintenance routine pour détecter précocement les incohérences potentielles. Pour plus d'informations, consultez la page checkMetadataConsistency.

  • Requête échantillonnée et analyse de la clé de shard

    Cette version prend en charge l'analyse de l'adéquation de la clé de shard d'une collection en fonction des résultats de requêtes échantillonnées. Cela peut vous aider à concevoir un schéma et une clé de shard plus efficaces et à mieux exploiter votre architecture de sharding. Pour plus d'informations, consultez les pages analyShardKey et configureQueryAnalyzer.

  • AutoMerger

    MongoDB 7.0 introduit un nouvel AutoMerger pour l'équilibreur de charge. Lorsque la distribution des données ou des index est inégale, qu'il y a trop de chunks ou lors d'une migration de données, l'AutoMerger fusionne les chunks pour équilibrer les données et améliorer les performances. Cette fonctionnalité est activée par défaut dans MongoDB 7.0 et vous pouvez la gérer via la fenêtre active de l'équilibreur de charge.

  • Sharding

    • Vous pouvez désormais utiliser le paramètre rangeDeleterHighPriority pour attribuer une priorité plus élevée à la suppression des documents orphelins. Par défaut, ce paramètre est défini sur false car les suppressions au niveau de l'application ont généralement une priorité plus élevée.

    • La métrique de surveillance operationsBlockedByRefresh, qui suivait le comportement d'actualisation du cache de catalogue, n'est plus prise en charge car chaque opération sur mongos utilisant les informations de routage de collection incrémentait ce compteur.

    • Cette version ajoute de nouvelles métriques de surveillance pour le resharding.

    • La commande addShard ne prend plus en charge l'option maxSize.

    • Lorsque vous ajustez la taille des chunks pour la collection config.settings, une vérification de validation limite désormais la valeur à la plage [1, 1024].

    • À partir de MongoDB 6.0.3, plusieurs ajustements ont été apportés à la politique de l'équilibreur de charge :

      • L'équilibreur de charge n'équilibre plus en fonction de la différence du nombre de chunks entre les shards. Il équilibre désormais en fonction de la différence de taille des données entre les shards.

      • Une plage remplace le concept logique de chunk.

      • Le fractionnement automatique se produit uniquement lorsque les plages se déplacent entre les shards.

  • Collections de séries temporelles

    • Cette version supprime les restrictions opérationnelles sur la commande DELETE pour les collections de séries temporelles. La commande DELETE n'a désormais plus de limitations, sauf qu'elle ne peut pas être utilisée dans des transactions multi-documents.

    • La commande COMPACT prend désormais en charge les collections de séries temporelles.

  • Agrégation

    Cette version introduit les opérateurs suivants pour prendre en charge les calculs bit à bit et les percentiles :

    Paramètre

    Description

    $bitAnd

    Renvoie le résultat d'une opération ET bit à bit sur une valeur Int32 ou Int64.

    $bitNot

    Renvoie le résultat d'une opération NON bit à bit sur une valeur Int32 ou Int64.

    $bitOr

    Renvoie le résultat d'une opération OU bit à bit sur une valeur Int32 ou Int64.

    $bitXor

    Renvoie le résultat d'une opération OU exclusif bit à bit sur une valeur Int32 ou Int64.

    $median

    Renvoie la médiane approximative, qui équivaut au 50e percentile.

    $percentile

    Renvoie la valeur pour un percentile spécifié.

  • Sécurité

    • MongoDB prend en charge KMIP 1.0 et 1.1.

    • MongoDB prend en charge OpenSSL 3.0 et OpenSSL FIPS.

  • Autres optimisations

    • Les journaux de requêtes lentes incluent désormais de nouveaux champs, tels que catalogCacheIndexLookupDurationMillis. Pour plus d'informations, consultez la page messages de journal pour les requêtes lentes.

    • À partir de MongoDB 7.0, MongoDB ajuste automatiquement et dynamiquement la concurrence des transactions du moteur de stockage, qui avait auparavant une valeur par défaut de 128. Pour plus d'informations, consultez la page Transactions concurrentes du moteur de stockage.

    • La commande currentOp inclut désormais de nouveaux champs liés à l'échantillonnage des requêtes. Pour plus d'informations, consultez la page currentop-metrics.

    • Cette version ajoute la prise en charge des index génériques composés. Pour plus d'informations, consultez la page Index génériques composés.

    • Le nouvel opérateur $changeStreamSplitLargeEvent prend en charge le fractionnement des grands événements de changement dépassant 16 Mo. Pour plus d'informations, consultez la page Grands événements de flux de changement.

    • Cette version améliore les performances du moteur d'exécution de requêtes basé sur les slots.

    • Cette version ajoute de nouvelles métriques pour les migrations de chunks. Pour plus d'informations, consultez la page Nouvelles statistiques de sharding pour les migrations de chunks.

    • Vous pouvez désormais utiliser la variable système USER_ROLES pour récupérer les rôles de l'utilisateur actuel.

    • Cette version ajoute de nouveaux paramètres globaux liés à analyzeShardKey, balancer et queryAnalyzers.

    • La sortie de la commande serverStatus inclut désormais des champs supplémentaires. Pour plus d'informations, consultez la page Modification de la sortie serverStatus.

Notes de version de MongoDB 6.0

Cette version introduit de nouvelles fonctionnalités telles que le chiffrement interrogeable et la synchronisation Cluster-to-Cluster Sync. Elle inclut également des améliorations et des optimisations pour les collections de séries temporelles, les flux de modifications (change streams), l'agrégation, les requêtes, l'élasticité et la sécurité.

  • Chiffrement interrogeable

    Le chiffrement interrogeable vous permet de chiffrer les données sensibles côté client, de les stocker sous forme de données entièrement randomisées et chiffrées sur le serveur de base de données, et d'exécuter des requêtes expressives sur ces données chiffrées.

    Avec le chiffrement interrogeable, les données en texte clair ne sont visibles que côté client. Lorsqu'une requête est envoyée au serveur, elle inclut une clé de chiffrement provenant d'un service de gestion des clés (KMS). Le serveur traite la requête sur le texte chiffré et renvoie un résultat chiffré. Le client utilise ensuite la clé pour déchiffrer le résultat et afficher les données en texte clair.

  • Synchronisation Cluster-to-Cluster Sync

    Cette version introduit mongosync, un nouvel outil de synchronisation qui prend en charge la synchronisation continue et unidirectionnelle des données entre deux clusters MongoDB. Il fonctionne dans n'importe quel environnement, y compris les environnements hybrides, Atlas, sur site (on-premises) et en périphérie (edge). Vous pouvez également contrôler et surveiller le processus de synchronisation en temps réel, et démarrer, arrêter, reprendre ou inverser la synchronisation selon vos besoins.

  • Collection de séries temporelles

    Cette version améliore les collections de séries temporelles avec des optimisations de l'indexation, des requêtes et du tri.

    • Ajoute la prise en charge d'un index secondaire et d'un index composé pour améliorer les performances en lecture.

    • Introduit l'indexation géospatiale pour les données de séries temporelles. Cela vous permet d'ajouter des informations géographiques à vos données, ce qui facilite l'analyse dans les scénarios impliquant des distances et des emplacements.

      Par exemple, vous pouvez suivre les variations de température dans des camions frigorifiques ou surveiller la consommation de carburant de cargos sur des itinéraires spécifiques.

    • Optimise les requêtes last point sur les données de séries temporelles. Vous n'avez plus besoin d'analyser l'intégralité d'une collection pour interroger le dernier point de données.

    • Améliore les performances de tri des données de séries temporelles. Les opérations de tri s'exécutent désormais plus efficacement en utilisant un index clusterisé et un index secondaire sur les champs de temps et de métadonnées.

  • Flux de modifications (Change stream)

    Cette version introduit les nouvelles fonctionnalités et optimisations suivantes :

    • Prend en charge l'affichage d'une image préalable (pre-image) d'un document.

      Remarque

      Les versions de MongoDB antérieures à la 6,0 ne prennent en charge que les images postérieures (post-images). À partir de MongoDB 6.0, vous pouvez afficher à la fois les images préalables et postérieures. Pour plus d'informations, consultez Flux de modifications avec images préalables et postérieures de documents.

    • Ajoute la prise en charge des instructions DDL telles que create, createIndexes, modify et shardCollection. Pour plus d'informations, consultez Événements de modification.

    • Les événements de modification incluent désormais le champ wallTime. L'horodatage prend en charge divers opérateurs de conversion et d'affichage, notamment $toDate, $tsSeconds et tsIncrement, ce qui facilite la consommation par les applications.

  • Agrégation

    Cette version introduit les nouvelles fonctionnalités et optimisations suivantes :

    • Les instances de cluster fragmenté (sharded cluster) prennent désormais en charge $lookup et $graphLookup.

    • Améliore la prise en charge des jointures avec $lookup.

    • Renforce les capacités de parcours de graphes avec $graphLookup.

    • Améliore les performances de $lookup jusqu'à 100 fois dans certains scénarios.

    Remarque

    Pour plus d'informations sur $lookup et $graphLookup, consultez $lookup (agrégation) et $graphLookup (agrégation).

  • Requête

    Ajoute de nouveaux opérateurs tels que $maxN, $topN, $minN, $bottomN, $lastN et $sortArray. Ces opérateurs déchargent le travail de calcul de l'application vers la base de données, allégeant ainsi la couche applicative.

    Remarque

    Pour plus d'informations sur ces opérateurs, consultez Opérateurs du pipeline d'agrégation.

  • Élasticité

    Cette version introduit les nouvelles fonctionnalités et optimisations suivantes :

    • La taille de chunk par défaut passe de 64 Mo à 128 Mo. Cela réduit la fréquence des migrations de données et diminue la surcharge réseau et de routage.

    • Ajoute la prise en charge de la commande configureCollectionBalancing, qui vous permet de :

      • Définir différentes tailles de chunk pour différentes collections fragmentées.

        Par exemple, vous pouvez augmenter la taille du chunk à 256 Mo pour les très grandes collections fragmentées, ou la réduire à 64 Mo ou 32 Mo pour les collections plus petites afin de répartir les données plus uniformément entre les shards.

      • Défragmenter activement les collections.

        Par rapport à la commande compact, configureCollectionBalancing défragmente les collections plus efficacement, réduisant considérablement l'utilisation de l'espace disque.

      Remarque

      Pour plus d'informations sur la commande configureCollectionBalancing, consultez configureCollectionBalancing.

    • Sécurité

      Cette version optimise la fonctionnalité de chiffrement au niveau des champs côté client (CSFLE). Le CSFLE prend désormais en charge tout fournisseur de gestion des clés conforme au protocole Key Management Interoperability Protocol (KMIP). En plus d'utiliser un fichier de clé local, vous pouvez désormais intégrer MongoDB à des appliances tierces de gestion des clés via KMIP pour une sécurité renforcée.

      Remarque

      La fonctionnalité CSFLE est souvent utilisée pour gérer les données sensibles, en particulier lors des migrations de données.

MongoDB 5.0

MongoDB 5.0 marque le début d'un nouveau cycle de publication conçu pour fournir de nouvelles fonctionnalités aux utilisateurs plus rapidement.

  • Plateforme native de séries temporelles

    MongoDB 5.0 étend la plateforme de données polyvalente pour simplifier le traitement des données de séries temporelles et élargir ses cas d'utilisation à des domaines tels que l'IoT, l'analyse financière et la logistique.

  • Resharding en direct

    Exécutez simplement la commande reshardCollection dans le shell MongoDB, sélectionnez la base de données et la collection à refragmenter, et spécifiez la nouvelle clé de shard.

    reshardCollection: "<database>.<collection>", key: <shardkey>
    Remarque
    • <database> : Le nom de la base de données à refragmenter.

    • <collection> : Le nom de la collection à refragmenter.

    • <shardkey> : Le nom de la nouvelle clé de shard.

    • Lorsque vous exécutez la commande reshardCollection, MongoDB clone la collection existante et applique toutes ses entrées d'oplog à la nouvelle collection. Après avoir appliqué toutes les entrées, MongoDB bascule vers la nouvelle collection et supprime l'ancienne en arrière-plan.

  • API versionnée

    L'API versionnée permet à MongoDB d'ajouter de nouvelles fonctionnalités et améliorations à chaque version tout en maintenant la rétrocompatibilité. Si vous devez modifier une API, vous pouvez introduire une nouvelle version et l'exécuter sur le même serveur aux côtés des versions d'API existantes. Alors que MongoDB accélère son calendrier de publication, l'API versionnée vous aide à utiliser les dernières fonctionnalités plus rapidement et plus facilement.

    L'API versionnée définit un ensemble stable des commandes et paramètres les plus utilisés pour une application. Cet ensemble reste inchangé quelles que soient les mises à jour de la base de données issues d'une version majeure annuelle ou d'une version rapide trimestrielle. En découplant le cycle de vie de l'application de celui de la base de données, vous pouvez associer votre pilote à une version spécifique de l'API MongoDB. Cela garantit que votre application peut fonctionner pendant des années sans modification de code, même si la base de données évolue avec de nouvelles fonctionnalités et améliorations.

  • Niveau de write concern majority par défaut

    À partir de MongoDB 5.0, le niveau de write concern par défaut est majority. Une opération d'écriture renvoie un accusé de réception de succès uniquement après avoir été appliquée au nœud principal et persistée dans l'oplog d'une majorité de nœuds secondaires. Cela offre des garanties de durabilité des données plus fortes dès la configuration initiale.

  • Requêtes snapshot de longue durée

    Les requêtes snapshot de longue durée ajoutent de la polyvalence et de la résilience à vos applications. Vous pouvez exécuter des requêtes dont la durée d'exécution par défaut est de 5 minutes (ou une durée personnalisée) tout en maintenant une isolation snapshot cohérente avec la base de données transactionnelle active. Vous pouvez également effectuer des requêtes snapshot sur les nœuds secondaires, ce qui vous permet d'exécuter différentes charges de travail sur un seul cluster et de les mettre à l'échelle sur différents shards.

  • Nouveau shell MongoDB

    Le shell MongoDB (mongosh) a été entièrement repensé pour offrir une meilleure expérience utilisateur. Il propose une expérience moderne en ligne de commande avec une utilisabilité améliorée et un environnement de script puissant. Le nouveau shell MongoDB est désormais le shell par défaut de la plateforme MongoDB. De nouvelles fonctionnalités telles que la coloration syntaxique, la saisie semi-automatique intelligente, l'aide contextuelle et des messages d'erreur utiles créent une expérience intuitive et interactive.

  • Nouveau rythme de publication

    À partir de MongoDB 5.0, MongoDB publie les versions en deux séries : les versions majeures et les versions rapides. Les versions rapides sont destinées au développement et à l'évaluation. N'utilisez pas les versions rapides dans un environnement de production.

Fonctionnalités de MongoDB 4.4

Cette version répond aux points de douleur les plus courants des utilisateurs des versions précédentes.

  • Index masqués

    Vous pouvez masquer un index existant pour empêcher son utilisation dans les requêtes ultérieures. Cela vous permet d'observer l'impact sur les performances de la suppression d'un index potentiellement inefficace avant de le supprimer définitivement.

  • Clés de shard affinables

    Vous pouvez ajouter un ou plusieurs champs suffixes à une clé de shard existante pour améliorer la distribution des documents. Cela empêche les requêtes de se concentrer sur un seul shard, répartissant ainsi la charge du serveur.

  • Clés de shard hachées composées

    Vous pouvez spécifier un seul champ haché au sein d'un index composite. Cela simplifie considérablement la logique de votre application.

  • Lectures protégées (Hedged reads)

    Pour une instance de cluster fragmenté, vous pouvez envoyer simultanément une requête de lecture à deux membres d'un ensemble de réplicas au sein d'un shard. Le cluster renvoie ensuite au client le résultat provenant du membre ayant répondu le plus rapidement, ce qui contribue à réduire la latence des requêtes.

  • Réplication en continu

    Le nœud principal diffuse proactivement l'Oplog vers les nœuds secondaires. Cette méthode réduit le temps d'aller-retour de près de moitié par rapport à la méthode d'interrogation (polling) des versions précédentes, améliorant ainsi les performances de réplication.

  • Indexation simultanée

    Les index sont construits simultanément sur les nœuds principaux et secondaires. Cela réduit considérablement le décalage de réplication pendant la création des index et garantit que les nœuds secondaires peuvent accéder aux dernières données rapidement.

  • Lectures en miroir

    Le nœud principal peut mettre en miroir un pourcentage du trafic de lecture vers les nœuds secondaires. Cela garantit que les nœuds secondaires gèrent une partie de la charge de lecture, ce qui contribue à réduire la latence d'accès des applications.

  • Synchronisation initiale reprenable

    Cette fonctionnalité offre une capacité de transfert reprenable pendant le processus de synchronisation complète entre un nœud principal et un nœud secondaire. Cela empêche le redémarrage de la synchronisation initiale en cas d'interruption réseau.

  • Rétention de l'oplog basée sur le temps

    Vous pouvez spécifier une période de rétention personnalisée pour l'Oplog. Cela permet d'éviter que le nœud principal ne supprime trop tôt les entrées de l'Oplog, ce qui pourrait autrement déclencher une synchronisation complète.

  • Union

    La nouvelle étape $unionWith vous permet de combiner des données provenant de plusieurs collections, de manière similaire à la fonction union all en SQL. Cela améliore les capacités de requête de MongoDB.

  • Expressions d'agrégation personnalisées

    Les nouveaux opérateurs $accumulator et $function vous permettent de créer des expressions d'agrégation personnalisées, améliorant ainsi la cohérence de l'API et l'expérience utilisateur globale.

Remarque

Pour en savoir plus sur les nouvelles fonctionnalités de MongoDB 4.4, consultez Fonctionnalités de MongoDB 4.4.

MongoDB 4.2

Cette version utilise le commit en deux phases pour garantir les propriétés ACID des transactions dans un cluster fragmenté. Cette fonctionnalité élargit considérablement les cas d'utilisation de MongoDB.

  • Transactions distribuées

    Le commit en deux phases garantit les propriétés ACID des transactions dans un cluster fragmenté. Cette fonctionnalité élargit considérablement les cas d'utilisation de MongoDB, marquant un saut d'une base de données NoSQL vers une base de données NewSQL.

  • Lectures retryables

    Les lectures retryables retent automatiquement les opérations dans des environnements réseau peu fiables, simplifiant la logique de votre application et assurant la continuité des activités.

  • Index génériques (Wildcard indexes)

    Un index générique peut couvrir plusieurs champs au sein d'un document, offrant une plus grande flexibilité pour les schémas avec des champs non déterministes et simplifiant la gestion.

  • Chiffrement au niveau des champs

    Le chiffrement au niveau des champs est désormais disponible au niveau du pilote, vous permettant de chiffrer des données sensibles spécifiques, telles que les noms de compte, les mots de passe, les prix et les numéros de téléphone, sans chiffrer l'intégralité de la base de données. Cela améliore à la fois la flexibilité et la sécurité.

  • Vues matérialisées

    Une vue matérialisée met en cache les résultats de calcul pour éviter les calculs redondants, améliorer l'efficacité opérationnelle et réduire la complexité logique.

MongoDB 4.0

Cette version est idéale pour les cas d'utilisation nécessitant la prise en charge des transactions et des fonctionnalités NoSQL, en particulier dans le secteur financier.

  • Prise en charge des transactions inter-documents

    En tant que première base de données cloud NoSQL à prendre en charge les transactions inter-documents, MongoDB 4.0 combine la vitesse et la flexibilité du modèle de document avec la garantie ACID.

  • Migration des données 40 % plus rapide

    Les lectures et écritures simultanées permettent aux nouveaux nœuds de shard de terminer la migration des données plus rapidement et de gérer les charges de travail de service croissantes.

  • Performances en lecture considérablement améliorées

    Avec la prise en charge des transactions, les nœuds secondaires ne bloquent plus les requêtes de lecture pendant la synchronisation de l'oplog. De plus, Alibaba Cloud prend en charge la mise à l'échelle multi-nœuds pour toutes les éditions, augmentant substantiellement la capacité de lecture.

MongoDB 3.4 (obsolète)

Cette version apporte plusieurs améliorations en matière de performances et de sécurité par rapport à MongoDB 3.2.

  • Synchronisation primaire/secondaire plus rapide

    Tous les index sont désormais construits pendant la synchronisation des données, contrairement aux versions précédentes où seul l'index _id était créé. Un nœud secondaire lit continuellement les nouvelles entrées de l'oplog pour s'assurer que sa base de données locale dispose d'un stockage suffisant pour les données temporaires.

  • Équilibrage de charge plus efficace

    Dans MongoDB 3.2 et les versions antérieures, les nœuds mongos géraient l'équilibrage de charge pour un cluster fragmenté. Plusieurs nœuds mongos entraient en concurrence pour un verrou distribué, et le nœud gagnant migrait un chunk entre les shards. Dans MongoDB 3.4, cette tâche est transférée au nœud principal de l'ensemble de réplicas du serveur de configuration, ce qui améliore considérablement à la fois la concurrence et l'efficacité de l'équilibrage de charge.

  • Opérations d'agrégation enrichies

    La version 3.4 ajoute un grand nombre d'opérateurs d'agrégation pour offrir des capacités d'analyse de données plus puissantes. Par exemple, bucket permet de classer facilement les données, $grahpLookup prend en charge des opérations relationnelles plus complexes par rapport à $lookup de la version 3.2, et $addFields enrichit les opérations sur les documents, comme la somme de champs spécifiques et le stockage du résultat dans un nouveau champ.

  • Prise en charge des zones de sharding

    Cette version introduit des zones pour un cluster fragmenté, remplaçant le mécanisme précédent de sharding conscient des tags. Cette fonctionnalité vous permet d'assigner des données spécifiques à un ou plusieurs shards désignés et simplifie le déploiement d'un cluster fragmenté sur plusieurs centres de données.

  • Prise en charge de la collation

    Auparavant, les chaînes étaient comparées octet par octet. La collation vous permet de spécifier des règles spécifiques à la langue pour la comparaison de chaînes, telles que les règles relatives à la casse et aux diacritiques. Cela permet des comparaisons insensibles à la casse et un tri basé sur une locale spécifique.

  • Prise en charge des vues en lecture seule

    Vous pouvez créer une collection virtuelle à partir des résultats d'une requête sur une autre collection ou vue. Vous pouvez ensuite exécuter des opérations de lecture sur cette vue comme vous le feriez sur une collection standard.