Les notes de version sont disponibles ici.
La documentation de référence et d'API pour le pilote Java est disponible ici.
La documentation de référence et d'API pour le pilote Kotlin est disponible ici.
La documentation de référence et d'API pour le pilote Scala est disponible ici.
Pour obtenir des didacticiels sur l'utilisation des pilotes JVM MongoDB, veuillez faire référence à MongoDB University. Des didacticiels, des vidéos et des exemples de code supplémentaires utilisant à la fois le pilote Java et le pilote Kotlin sont également disponibles dans le Centre de développement MongoDB.
Pour des problèmes, des questions ou des commentaires concernant les pilotes MongoDB Java, Kotlin et Scala, veuillez consulter nos canaux d'assistance. Veuillez ne pas envoyer d'e-mail directement aux développeurs de pilotes pour leur faire part de problèmes ou de questions. Vous aurez plus de chances d'obtenir une réponse sur les forums de la communauté MongoDB ou sur StackOverflow.
Au minimum, veuillez inclure dans votre description la version exacte du pilote que vous utilisez. Si vous rencontrez des problèmes de connectivité, il est souvent également utile de coller la ligne de code dans laquelle vous construisez l'instance MongoClient, ainsi que les valeurs de tous les paramètres que vous transmettez au constructeur. Vous devez également vérifier les journaux de vos applications pour détecter toute exception liée à la connectivité et les publier également.
Vous pensez avoir trouvé un bug dans les pilotes Java, Kotlin ou Scala ? Vous voulez voir une nouvelle fonctionnalité dans les pilotes ? Veuillez ouvrir un dossier dans notre outil de gestion des problèmes, JIRA :
Les rapports de bogues dans JIRA pour le pilote et le projet Core Server (c'est-à-dire SERVER) sont publics .
Si vous avez identifié une vulnérabilité de sécurité dans un pilote ou tout autre projet MongoDB, veuillez la signaler conformément aux instructions ici.
Des incréments majeurs (tels que 4.x -> 5.x) se produiront lorsque des modifications importantes seront apportées à l'API publique. Toutes les méthodes et classes supprimées dans une version majeure auront été obsolètes dans une version antérieure de la branche de la version majeure précédente et/ou mentionnées dans les notes de version.
Des incréments mineurs de 5.x (tels que 5.1, 5.2, etc.) se produiront lorsque de nouvelles fonctionnalités non triviales seront ajoutées ou lorsque des améliorations significatives ou des corrections de bugs se produiront et pourront entraîner des changements de comportement susceptibles d'affecter certains cas extrêmes (tels que la dépendance au comportement résultant de un bug). Un exemple d'amélioration est une méthode ou une classe ajoutée pour prendre en charge une nouvelle fonctionnalité ajoutée au serveur MongoDB. Les versions mineures seront presque toujours compatibles binairement avec les versions mineures précédentes de la même branche de versions majeures, sauf indication contraire ci-dessous.
Les incréments du correctif 5.xy (tels que 5.0.0 -> 5.0.1, 5.1.1 -> 5.1.2, etc.) se produiront uniquement pour les corrections de bogues et seront toujours compatibles binairement avec les versions de correctifs précédentes de la même branche de version mineure. .
Les API marquées de l'annotation @Alpha
en sont aux premiers stades de développement, sont sujettes à des modifications incompatibles, voire à une suppression, dans une version ultérieure et peuvent manquer de certaines fonctionnalités prévues. Une API portant une annotation @Alpha
peut contenir des problèmes connus affectant la fonctionnalité, les performances et la stabilité. Ils sont également exemptés de toute garantie de compatibilité apportée par la bibliothèque qui les contient.
Il est déconseillé aux applications d'utiliser les API Alpha dans des environnements de production ou aux bibliothèques (qui sont incluses dans les CLASSPATH des utilisateurs, hors du contrôle des développeurs de bibliothèques) de dépendre de ces API. Les API Alpha sont destinées uniquement à des fins expérimentales .
Les API marquées de l'annotation @Beta
au niveau de la classe ou de la méthode sont susceptibles d'être modifiées. Ils peuvent être modifiés à tout moment, voire supprimés, à tout moment. Si votre code est lui-même une bibliothèque (c'est-à-dire qu'il est utilisé sur le CLASSPATH des utilisateurs hors de votre contrôle), vous ne devez pas utiliser d'API bêta, sauf si vous les reconditionnez (par exemple en utilisant un ombrage, etc.).
Les API marquées de l'annotation @Deprecated
au niveau de la classe ou de la méthode resteront prises en charge jusqu'à la prochaine version majeure, mais il est recommandé de cesser de les utiliser.
Tout le code contenu dans les packages com.mongodb.internal.*
est considéré comme une API privée et ne doit pas du tout être invoqué. Cela peut changer à tout moment.
Les informations sur les binaires et les dépendances pour Maven, Gradle, Ivy et autres peuvent être trouvées sur http://search.maven.org.
Exemple pour Maven :
< dependency >
< groupId >org.mongodb</ groupId >
< artifactId >mongodb-driver-sync</ artifactId >
< version >x.y.z</ version >
</ dependency >
Des versions d'instantanés sont également publiées régulièrement via Sonatype.
Exemple pour Maven :
< repositories >
< repository >
< id >sonatype-snapshot</ id >
< url >https://oss.sonatype.org/content/repositories/snapshots/</ url >
</ repository >
</ repositories >
Java 17+ et git sont requis pour créer et compiler la source. Pour créer et tester le pilote :
$ git clone https://github.com/mongodb/mongo-java-driver.git
$ cd mongo-java-driver
$ ./gradlew check
La suite de tests nécessite que mongod soit exécuté avec enableTestCommands
, qui peut être défini avec le paramètre de ligne de commande --setParameter enableTestCommands=1
:
$ mkdir -p data/db
$ mongod --dbpath ./data/db --logpath ./data/mongod.log --port 27017 --logappend --fork --setParameter enableTestCommands=1
Si vous rencontrez des erreurs "Too many open files"
lors de l'exécution des tests, vous devrez alors augmenter le nombre de descripteurs de fichiers disponibles avant de démarrer Mongod comme décrit dans https://www.mongodb.com/docs/manual/reference/ulimit. /
Quelques étapes de configuration manuelle sont nécessaires pour exécuter le code dans IntelliJ :
Java 17+ est requis pour créer et compiler la source.
Erreur : java: cannot find symbol: class SNIHostName location: package javax.net.ssl
Correctif : Paramètres/Préférences > Construction, Exécution, Déploiement > Compilateur > Compilateur Java - décochez « Utiliser l'option '--release' pour la compilation croisée (Java 9 et versions ultérieures) »
Erreur : java: package com.mongodb.internal.build does not exist
Correctifs : l'un des éléments suivants :
generateBuildConfig
: par exemple : ./gradlew generateBuildConfig
ou via Gradle > driver-core > Tasks > buildconfig > generateBuildConfiggenerateBuildConfig
pour qu'il s'exécute avant la construction. via Gradle > Tâches > buildconfig > clic droit sur generateBuildConfig - cliquez sur "Execute Before Build"