Tous les produits
Search
Centre de documentation

ApsaraDB for MongoDB:Présentation des nouvelles fonctionnalités de MongoDB 5.0

Dernière mise à jour :Aug 08, 2026

Cette rubrique décrit les principales nouvelles fonctionnalités de MongoDB 5.0.

Contexte

MongoDB 5.0 marque le début d'un nouveau cycle de publication visant à proposer plus rapidement de nouvelles fonctionnalités aux utilisateurs. Par exemple, l'API versionnée et le resharding en direct simplifient les futures mises à niveau de la base de données et s'adaptent à l'évolution des besoins métier. La plateforme native de données de séries temporelles permet à MongoDB de prendre en charge un éventail plus large de charges de travail et de cas d'utilisation, tandis que le nouveau MongoDB Shell améliore l'expérience utilisateur.

Plateforme native de séries temporelles

MongoDB 5.0 étend sa plateforme de données d'application polyvalente afin de simplifier la gestion des données de séries temporelles, élargissant ainsi ses cas d'utilisation dans des domaines tels que l'IoT, l'analyse financière et la logistique.

Les collections de séries temporelles de MongoDB stockent automatiquement les données dans un format hautement optimisé et compressé, réduisant la taille de stockage et les opérations d'E/S pour de meilleures performances et une meilleure montée en charge. Cela raccourcit le cycle de développement et vous permet de créer rapidement des modèles optimisés pour les applications de séries temporelles.

Exemple de commande pour créer une collection de séries temporelles :

db.createCollection("collection_name",{ timeseries: { timeField: "timestamp" } } )

MongoDB ajuste de manière transparente la fréquence d'ingestion et gère automatiquement les mesures hors ordre en fonction des partitions temporelles générées dynamiquement. Le dernier connecteur MongoDB pour Apache Kafka prend nativement en charge les séries temporelles. Vous pouvez créer automatiquement une collection de séries temporelles directement à partir des messages de topic Kafka, ce qui vous permet de traiter et d'agréger les données lors de leur ingestion avant de les écrire dans une collection de séries temporelles MongoDB.

Une collection de séries temporelles crée automatiquement un index clusterisé ordonné chronologiquement, ce qui réduit la latence des requêtes. L'API de requête MongoDB est également enrichie de fonctions de fenêtrage, vous permettant d'exécuter des requêtes analytiques telles que des moyennes mobiles et des sommes cumulatives. Dans un système de base de données relationnelle, celles-ci sont souvent appelées fonctions analytiques SQL et prennent en charge des fenêtres définies par des lignes (par exemple, une moyenne mobile sur trois lignes). MongoDB va plus loin en ajoutant des fonctions de séries temporelles puissantes telles que la moyenne mobile exponentielle (EMA), les dérivées et les intégrales, qui prennent en charge des fenêtres définies par le temps (par exemple, une moyenne mobile sur 15 minutes). Vous pouvez utiliser les fonctions de fenêtrage pour interroger à la fois les collections de séries temporelles et les collections MongoDB classiques, offrant ainsi de nouvelles capacités analytiques pour divers types d'applications. De plus, MongoDB 5.0 fournit de nouveaux opérateurs de date, notamment $dateAdd, $dateSubtract, $dateDiff, et $dateTrunc, pour agréger et interroger les données sur des fenêtres temporelles personnalisées.

Vous pouvez placer une collection de séries temporelles dans la même base de données qu'une collection MongoDB classique. Il n'est pas nécessaire de choisir une base de données spécialisée pour les séries temporelles, incapable de servir tout autre type d'application, ni de mettre en œuvre des intégrations complexes pour mélanger des données de séries temporelles avec d'autres données. En fournissant une plateforme unifiée, MongoDB vous permet de construire des applications de séries temporelles performantes et efficaces, tout en prenant en charge d'autres cas d'utilisation ou charges de travail. Cela élimine le coût et la complexité liés à l'intégration et à l'exécution de plusieurs bases de données disparates.

Resharding en direct

Version de la base de données Fonctionnalités Méthode de mise en œuvre
Avant MongoDB 5.0 Avant MongoDB 5.0, le resharding était un processus complexe et manuel.
  • Méthode 1 : Exportez l'intégralité de la collection, puis rechargez les données dans une nouvelle collection avec la nouvelle clé de shard.

    Étant donné qu'il s'agit d'un processus hors ligne, votre application subit un temps d'arrêt important jusqu'à la fin du rechargement. Par exemple, l'exportation et le rechargement d'une collection de plus de 10 To sur un cluster à trois shards peuvent prendre plusieurs jours.

  • Méthode 2 : Créez un nouveau cluster shardé, redéfinissez la clé de shard de la collection, puis utilisez un processus de migration personnalisé pour écrire les données de l'ancien cluster shardé vers le nouveau.
    • Ce processus vous oblige à gérer vous-même le routage des requêtes et la logique de migration, et à vérifier continuellement la progression de la migration pour garantir que toutes les données migrent avec succès.
    • La migration personnalisée est une tâche extrêmement complexe, gourmande en main-d'œuvre, risquée et chronophage. Par exemple, un utilisateur de MongoDB a passé trois mois à migrer 10 milliards de documents.
MongoDB 5.0 et versions ultérieures
  • reshardCollection Exécutez la commande pour démarrer le resharding.
  • Le processus de resharding est hautement efficace.

    Il ne se contente pas de rééquilibrer les données. Au lieu de cela, il copie et réécrit toutes les données de la collection actuelle vers une nouvelle collection en arrière-plan, tout en restant synchronisé avec les nouvelles écritures d'application.

  • Le resharding est entièrement automatisé.

    Cela réduit le temps de resharding de plusieurs semaines ou mois à quelques minutes ou heures, évitant ainsi des migrations de données manuelles fastidieuses et complexes.

  • Avec le resharding en direct, vous pouvez facilement évaluer les effets de différentes clés de shard dans un environnement de développement ou de test et modifier votre clé de shard chaque fois que nécessaire.
reshardCollection Vous pouvez modifier la clé de shard d'une collection à la demande au fur et à mesure que votre activité se développe, sans interruption de la base de données ni migrations de données complexes. Il vous suffit d'exécuter la commande dans le MongoDB Shell, de sélectionner la base de données et la collection à resharder, puis de spécifier la nouvelle clé de shard.
reshardCollection: "<database>.<collection>", key: <shardkey>
Remarque
  • <database> : Nom de la base de données à resharder.
  • <collection> : Nom de la collection à resharder.
  • <shardkey> : Nom de la clé de shard.
  • reshardCollection Après avoir appliqué toutes les entrées de l'oplog, MongoDB bascule automatiquement vers la nouvelle collection et supprime l'ancienne en arrière-plan.

API versionnée

  • Compatibilité des applications

    À partir de MongoDB 5.0, l'API versionnée définit un ensemble stable des commandes et paramètres les plus courants, qui restent inchangés tant dans les versions majeures annuelles que dans les versions rapides trimestrielles. En découplant les cycles de vie de l'application et 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 lors des mises à niveau et améliorations de la base de données.

  • Flexibilité pour ajouter de nouvelles fonctionnalités et améliorations

    L'API versionnée permet à MongoDB d'ajouter avec flexibilité de nouvelles fonctionnalités et améliorations à la base de données à chaque version, tout en maintenant la rétrocompatibilité. Lorsque vous devez modifier l'API, vous pouvez introduire une nouvelle version de l'API qui s'exécute sur le même serveur parallèlement aux API versionnées existantes. Alors que MongoDB accélère son calendrier de publication, l'API versionnée vous permet d'adopter plus rapidement et plus facilement les dernières fonctionnalités de MongoDB.

La valeur par défaut de Write Concern est définie sur le niveau Majority

À partir de MongoDB 5.0, le niveau par défaut de

write concern

est

majority

. Une opération d'écriture n'est reconnue comme réussie qu'après avoir été appliquée au nœud principal et persistée dans le journal d'une majorité de nœuds secondaires, offrant ainsi des garanties de durabilité des données plus fortes dès le départ.

Remarque

Le

write concern

est entièrement configurable. Vous pouvez personnaliser le

write concern

pour équilibrer les performances de l'application et la durabilité des données.

Optimisations de la gestion des connexions

Par défaut, chaque connexion client correspond à un thread sur le serveur MongoDB backend lorsque vous configurez net.serviceExecutor sur synchronous. La création, le basculement et la destruction de threads sont des opérations gourmandes en ressources. Lorsque le nombre de connexions est trop élevé, les threads consomment d'importantes ressources serveur.

Une tempête de connexions correspond à un nombre élevé de connexions ou à un taux de création de connexions incontrôlé. Ce problème peut avoir diverses causes et survient souvent lorsque les performances du service sont déjà dégradées.

Pour remédier à ces situations, MongoDB 5.0 introduit les mesures suivantes :

  • Elle limite le nombre de connexions que les pilotes peuvent créer simultanément, offrant ainsi un moyen simple et efficace de prévenir la surcharge du serveur de base de données.

  • Elle réduit la fréquence à laquelle les pilotes vérifient le pool de connexions, laissant aux nœuds serveur non réactifs ou surchargés le temps de récupérer.

  • Les pilotes dirigent les charges de travail vers les serveurs plus rapides disposant de pools de connexions plus sains, au lieu de sélectionner aléatoirement parmi les serveurs disponibles.

Ces mesures, combinées aux améliorations apportées à la couche de routage des requêtes mongos depuis les versions précédentes, renforcent encore la capacité de MongoDB à gérer des charges à haute concurrence.

Requêtes snapshot de longue durée

Les requêtes snapshot de longue durée augmentent la polyvalence et la résilience des applications. Vous pouvez exécuter des requêtes dont la durée par défaut est de 5 minutes (ou ajustable selon une durée personnalisée) tout en maintenant une isolation snapshot cohérente avec une base de données transactionnelle active. Vous pouvez également effectuer des requêtes snapshot sur un nœud secondaire, 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.

MongoDB implémente les requêtes snapshot de longue durée via une fonctionnalité du moteur de stockage sous-jacent appelée Durable History, introduite dans MongoDB 4.4. Durable History stocke un instantané de toutes les valeurs de champ qui ont changé depuis le début d'une requête. En utilisant Durable History, les requêtes peuvent maintenir une isolation snapshot même lorsque les données changent. Durable History aide également à réduire la pression sur le cache du moteur de stockage, permettant un débit de requêtes plus élevé dans les scénarios à forte charge d'écriture.

Nouveau MongoDB Shell

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

  • Expérience utilisateur améliorée

    • Rédigez plus facilement des requêtes et des agrégations, et obtenez des résultats plus lisibles.

      Le nouveau MongoDB Shell prend en charge la coloration syntaxique, facilitant la distinction entre les champs, les valeurs et les types de données pour éviter les erreurs de syntaxe. Si une erreur se produit, le nouveau MongoDB Shell identifie précisément le problème et suggère une solution.

    • Saisissez plus rapidement les requêtes et les commandes.

      Le nouveau MongoDB Shell prend en charge la saisie semi-automatique intelligente. Il fournit des suggestions pour les méthodes, les commandes et les expressions MQL en fonction de la version de MongoDB que vous utilisez.

      Exemple : Si vous ne vous souvenez plus de la syntaxe d'une commande, vous pouvez la rechercher rapidement directement depuis le MongoDB Shell.

      secondary [direct: secondary] sample_mflix → db.movies.createIndex
      db.movies.createIndexes  db.movies.createIndex
      secondary [direct: secondary] sample_mflix → db.movies.createIndex.help()
        db.coll.createIndex({ category: 1 }, { name: 'index-1' }):
        Creates one index on a collection
        For more information on usage: https://docs.mongodb.com/manual/reference/method/db.collection.createIndex
      secondary [direct: secondary] sample_mflix →
  • Environnement de script avancé

    L'environnement de script du nouveau MongoDB Shell est construit sur le REPL Node.js (Read-Eval-Print Loop). Vous pouvez utiliser toutes les API Node.js et tous les modules de npm dans vos scripts. Vous pouvez également charger et exécuter des scripts depuis le système de fichiers, et continuer à utiliser load() et eval() pour exécuter des scripts, comme dans l'ancien shell.

  • Extensibilité et plugins

    Le nouveau MongoDB Shell est hautement extensible, vous permettant d'utiliser toutes les fonctionnalités de MongoDB pour améliorer votre productivité.

    Dans le nouveau MongoDB Shell, vous pouvez installer des plugins Snippets. Le shell peut charger automatiquement les Snippets et utiliser toutes les API Node.js et les packages npm. MongoDB maintient également un référentiel Snippets avec des fonctionnalités utiles, telles qu'un plugin pour analyser le schéma d'une collection spécifiée. Vous pouvez également configurer le MongoDB Shell pour utiliser les plugins de votre choix.

    Remarque

    Les plugins sont actuellement une fonctionnalité expérimentale dans le MongoDB Shell.

PyMongoArrow et science des données

Avec la nouvelle API PyMongoArrow, vous pouvez utiliser Python pour exécuter des analyses complexes et du machine learning sur MongoDB. PyMongoArrow peut convertir rapidement les résultats de requêtes MongoDB simples en formats de données populaires, tels qu'un DataFrame Pandas ou un tableau NumPy, afin de rationaliser vos flux de travail de science des données.

Améliorations de la validation de schéma

La validation de schéma est un moyen d'appliquer des contrôles de gouvernance des données dans MongoDB. Dans MongoDB 5.0, la validation de schéma est plus simple et plus conviviale. Lorsqu'une opération échoue à la validation, MongoDB génère un message d'erreur descriptif. Ce message vous aide à comprendre quel document n'était pas conforme aux règles du validateur de la collection et pourquoi, vous permettant d'identifier et de corriger rapidement le code qui viole les règles.

Créations d'index reprenables

Dans MongoDB 5.0, une création d'index en cours reprend automatiquement là où elle s'était arrêtée après un redémarrage du nœud. Cela réduit l'impact métier des actions de maintenance planifiées. Par exemple, lorsque vous redémarrez ou mettez à niveau un nœud de base de données, vous n'avez plus à vous soucier de l'échec d'une création d'index en cours sur une grande collection.

Modifications du modèle de publication

Étant donné que MongoDB prend en charge de nombreuses versions et plateformes, chaque publication doit être validée sur plus de 20 plateformes prises en charge. Ce travail de validation approfondi a ralenti la livraison des nouvelles fonctionnalités. Par conséquent, à partir de MongoDB 5.0, les publications sont divisées en versions majeures et versions rapides. Les versions rapides sont disponibles en téléchargement à des fins de développement et de test, mais elles ne sont pas recommandées pour les environnements de production.

Autres fonctionnalités

Pour plus d'informations sur les fonctionnalités de MongoDB 5.0, consultez les Notes de version de MongoDB 5.0.