{"id":1343,"date":"2026-03-06T11:39:29","date_gmt":"2026-03-06T09:39:29","guid":{"rendered":"http:\/\/www.lafabriquedecode.com\/blog\/?p=1343"},"modified":"2026-03-06T16:26:27","modified_gmt":"2026-03-06T14:26:27","slug":"interroger-un-cluster-mongodb-atlas-avec-java","status":"publish","type":"post","link":"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/","title":{"rendered":"Interroger un cluster MongoDB Atlas avec Java"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2026\/03\/Capture-de\u0301cran-2026-03-04-a\u0300-20.31.05.png\"><img loading=\"lazy\" width=\"1024\" height=\"648\" src=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2026\/03\/Capture-de\u0301cran-2026-03-04-a\u0300-20.31.05-1024x648.png\" alt=\"\" class=\"wp-image-1345\" srcset=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2026\/03\/Capture-de\u0301cran-2026-03-04-a\u0300-20.31.05-1024x648.png 1024w, http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2026\/03\/Capture-de\u0301cran-2026-03-04-a\u0300-20.31.05-300x190.png 300w, http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2026\/03\/Capture-de\u0301cran-2026-03-04-a\u0300-20.31.05-768x486.png 768w, http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2026\/03\/Capture-de\u0301cran-2026-03-04-a\u0300-20.31.05-624x395.png 624w, http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2026\/03\/Capture-de\u0301cran-2026-03-04-a\u0300-20.31.05.png 1198w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>image tir\u00e9e du site medium.com<\/figcaption><\/figure>\n\n\n\n<p>Dans le cadre de ma formation de trois jours <strong>\u00ab MongoDB \u2013 exploiter vos donn\u00e9es efficacement \u00bb<\/strong>, destin\u00e9e \u00e0 de futurs ing\u00e9nieurs en informatique, je propose aux \u00e9tudiants de r\u00e9aliser les travaux dirig\u00e9s dans le langage de programmation de leur choix.<\/p>\n\n\n\n<p>De mon c\u00f4t\u00e9, j\u2019en profite chaque ann\u00e9e pour m\u2019essayer \u00e0 un nouveau langage ou pour me remettre \u00e0 un langage que je n\u2019ai pas pratiqu\u00e9 depuis longtemps. Cette ann\u00e9e, je reviens \u00e0 Java, que je n&rsquo;ai plus pratiqu\u00e9 depuis 2020. <\/p>\n\n\n\n<p>Nous avons d\u2019abord ex\u00e9cut\u00e9 toutes les requ\u00eates de l\u2019exercice sur la collection <em>salles<\/em> (<a href=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2024\/03\/exercice_requetes_mongo.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">PDF<\/a>) \u00e0 partir de l\u2019interpr\u00e9teur JavaScript du shell <strong>MongoDB<\/strong> accessible dans <a href=\"https:\/\/www.mongodb.com\/fr-fr\/products\/platform\" target=\"_blank\" rel=\"noreferrer noopener\">Compass<\/a>, en nous connectant \u00e0 des clusters cr\u00e9\u00e9s sur <a href=\"https:\/\/www.mongodb.com\/fr-fr\/cloud\/atlas\/register\" target=\"_blank\" rel=\"noreferrer noopener\">Atlas<\/a>. Ensuite, nous avons traduit ces requ\u00eates dans le langage de programmation pr\u00e9f\u00e9r\u00e9 de chaque \u00e9tudiant.<\/p>\n\n\n\n<h2>D\u00e9pendances du projet<\/h2>\n\n\n\n<p>Le code repose sur un nombre tr\u00e8s limit\u00e9 de d\u00e9pendances afin de rester simple et facilement compr\u00e9hensible par les \u00e9tudiants. La premi\u00e8re est le driver officiel <strong>MongoDB Java Sync<\/strong>, qui permet d\u2019interagir avec la base de donn\u00e9es en mode synchrone et d\u2019ex\u00e9cuter les requ\u00eates MongoDB depuis le code Java. J\u2019ai \u00e9galement ajout\u00e9 la biblioth\u00e8que <strong>dotenv-java<\/strong>, qui facilite la gestion des param\u00e8tres de configuration en permettant de charger les variables d\u2019environnement \u00e0 partir d\u2019un fichier .env, pratique pour stocker les informations de connexion ou les identifiants sans les int\u00e9grer directement dans le code source. Enfin, la d\u00e9pendance <strong>slf4j-simple<\/strong> fournit une impl\u00e9mentation minimale du framework de logging <strong>SLF4J<\/strong>, utilis\u00e9e par le driver MongoDB pour afficher les logs. <\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;dependencies&gt;\n    &lt;dependency&gt;\n      &lt;groupid&gt;org.mongodb&lt;\/groupid&gt;\n      &lt;artifactid&gt;mongodb-driver-sync&lt;\/artifactid&gt;\n      &lt;version&gt;5.2.0&lt;\/version&gt;\n    &lt;\/dependency&gt;\n\n    &lt;dependency&gt;\n      &lt;groupid&gt;io.github.cdimascio&lt;\/groupid&gt;\n      &lt;artifactid&gt;dotenv-java&lt;\/artifactid&gt;\n      &lt;version&gt;3.0.0&lt;\/version&gt;\n    &lt;\/dependency&gt;\n\n    &lt;dependency&gt;\n      &lt;groupid&gt;org.slf4j&lt;\/groupid&gt;\n      &lt;artifactid&gt;slf4j-simple&lt;\/artifactid&gt;\n      &lt;version&gt;2.0.13&lt;\/version&gt;\n    &lt;\/dependency&gt;\n  &lt;\/dependencies&gt;\n<\/pre><\/div>\n\n\n<h2>Le fichier d&rsquo;environnement<\/h2>\n\n\n\n<p>On y isole les <em>credentials<\/em> qui nous permettent de nous connecter \u00e0 notre cluster fra\u00eechement cr\u00e9\u00e9 en ligne :<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nMONGO_USER=monutilisateur\nMONGO_PASSWORD=monmotdepasse\nMONGO_CLUSTER=url.de.mon.cluster.mongodb.net\nMONGO_DB=mabasededonnees\nMONGO_COLLECTION=salles\n<\/pre><\/div>\n\n\n<h2>La classe principale<\/h2>\n\n\n\n<p>Notre main n&rsquo;est pas bien compliqu\u00e9 : on y execute tous nos exercices contenus dans un repository d\u00e9di\u00e9 \u00e0 notre collection <strong>salles<\/strong>. Ce repository est r\u00e9cup\u00e9r\u00e9 via l&rsquo;appel \u00e0 une fabrique d\u00e9di\u00e9e.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\npackage com.cesi.mongodb;\n\nimport com.mongodb.MongoException;\nimport com.mongodb.client.MongoClient;\nimport com.mongodb.client.MongoDatabase;\n\npublic class Main {\n\n    public static void main(String&#91;] args) {\n        int exitCode = 0;\n\n        try (MongoClient client = MongoConnection.createClient()) {\n\n            MongoDatabase db = MongoConnection.getDatabase(client);\n\n            System.out.println(&quot;Connexion r\u00e9ussie \u00e0 MongoDB !&quot;);\n            System.out.println(&quot;Database : &quot; + db.getName());\n\n            runSallesExercices(db);\n\n        } catch (MongoException e) {\n            exitCode = 2;\n            System.err.println(&quot;Erreur MongoDB (connexion\/requ\u00eate) : &quot; + e.getMessage());\n            e.printStackTrace(System.err);\n\n        } catch (RuntimeException e) {\n            exitCode = 1;\n            System.err.println(&quot;Erreur inattendue : &quot; + e.getMessage());\n            e.printStackTrace(System.err);\n\n        } finally {\n            System.exit(exitCode);\n        }\n    }\n\n    private static void runSallesExercices(MongoDatabase db) {\n        RepositoryFactory factory = new RepositoryFactory(db);\n        SalleRepository repository = factory.salles();\n\n        runExercise(1, repository::exercice1);\n        runExercise(2, repository::exercice2);\n        runExercise(3, repository::exercice3);\n        runExercise(4, repository::exercice4);\n        runExercise(5, repository::exercice5);\n        runExercise(6, repository::exercice6);\n        runExercise(7, repository::exercice7);\n        runExercise(8, repository::exercice8);\n        runExercise(9, repository::exercice9);\n        runExercise(10, repository::exercice10);\n    }\n\n    private static void runExercise(int number, Runnable exercise) {\n        System.out.println(&quot;\\n===== Exercice &quot; + number + &quot; =====&quot;);\n        exercise.run();\n    }\n}\n<\/pre><\/div>\n\n\n<h2>La fabrique de repositories<\/h2>\n\n\n\n<p>Elle ne contient qu&rsquo;un seul type de repository \u00e0 ce stade : celui d\u00e9di\u00e9 \u00e0 la gestion de la collection <strong>salles<\/strong>, sur laquelle est bas\u00e9e l&rsquo;exercice.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\npackage com.cesi.mongodb;\n\nimport com.mongodb.client.MongoCollection;\nimport com.mongodb.client.MongoDatabase;\nimport io.github.cdimascio.dotenv.Dotenv;\nimport org.bson.Document;\n\npublic final class RepositoryFactory {\n\n    private final MongoDatabase db;\n    private final Dotenv env;\n\n    public RepositoryFactory(MongoDatabase db) {\n        this(db, Dotenv.load());\n    }\n\n    public RepositoryFactory(MongoDatabase db, Dotenv env) {\n        this.db = db;\n        this.env = env;\n    }\n\n    public SalleRepository salles() {\n        String collectionName = getRequired(&quot;MONGO_COLLECTION&quot;, &quot;salles&quot;);\n        MongoCollection&lt;Document&gt; collection = db.getCollection(collectionName);\n        return new SalleRepository(collection);\n    }\n\n    private String getRequired(String key, String defaultValue) {\n        String value = env.get(key);\n        if (value == null || value.isBlank()) {\n            return defaultValue;\n        }\n        return value;\n    }\n}\n<\/pre><\/div>\n\n\n<h2>Le repository d\u00e9di\u00e9 \u00e0 la collection salles<\/h2>\n\n\n\n<p>Il contient la totalit\u00e9 de nos exercices, chacun isol\u00e9 dans sa m\u00e9thode de classe.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\npackage com.cesi.mongodb;\n\nimport com.mongodb.client.MongoCollection;\nimport com.mongodb.client.model.Sorts;\nimport com.mongodb.client.model.Updates;\nimport static com.mongodb.client.model.Filters.*;\nimport static com.mongodb.client.model.Projections.*;\n\nimport org.bson.BsonType;\nimport org.bson.Document;\nimport org.bson.conversions.Bson;\n\nimport java.time.Instant;\nimport java.util.Date;\nimport java.util.List;\nimport java.util.regex.Pattern;\n\npublic class SalleRepository {\n\n    private final MongoCollection&lt;Document&gt; collection;\n\n    public SalleRepository(MongoCollection&lt;Document&gt; collection) {\n        this.collection = collection;\n    }\n\n    public void exercice1() {\n        collection.find(eq(&quot;smac&quot;, true))\n            .projection(fields(include(&quot;_id&quot;, &quot;nom&quot;)))\n            .forEach(doc -&gt; System.out.println(doc.toJson()));\n    }\n\n    public void exercice2() {\n        collection.find(gt(&quot;capacite&quot;, 1000))\n            .projection(fields(excludeId(), include(&quot;nom&quot;)))\n            .forEach(doc -&gt; System.out.println(doc.toJson()));\n    }\n\n    public void exercice3() {\n        collection.find(exists(&quot;adresse.numero&quot;, false))\n            .projection(fields(include(&quot;_id&quot;)))\n            .forEach(doc -&gt; System.out.println(doc.toJson()));\n    }\n\n    public void exercice4() {\n        collection.find(size(&quot;avis&quot;, 1))\n            .projection(fields(include(&quot;_id&quot;, &quot;nom&quot;)))\n            .forEach(doc -&gt; System.out.println(doc.toJson()));\n    }\n\n    public void exercice5() {\n        collection.find(eq(&quot;styles&quot;, &quot;blues&quot;))\n            .projection(fields(excludeId(), include(&quot;styles&quot;)))\n            .forEach(doc -&gt; System.out.println(doc.toJson()));\n    }\n\n    public void exercice6() {\n        collection.find(eq(&quot;styles.0&quot;, &quot;blues&quot;))\n            .projection(fields(excludeId(), include(&quot;styles&quot;)))\n            .forEach(doc -&gt; System.out.println(doc.toJson()));\n    }\n\n    public void exercice7() {\n        Pattern regex = Pattern.compile(&quot;^84&quot;);\n        collection.find(and(regex(&quot;adresse.codePostal&quot;, regex), lt(&quot;capacite&quot;, 500)))\n            .projection(fields(excludeId(), include(&quot;adresse.ville&quot;)))\n            .forEach(doc -&gt; System.out.println(doc.toJson()));\n    }\n\n    public void exercice8() {\n        collection.find(or(mod(&quot;_id&quot;, 2, 0), exists(&quot;avis&quot;, false)))\n            .projection(fields(include(&quot;_id&quot;)))\n            .forEach(doc -&gt; System.out.println(doc.toJson()));\n    }\n\n    public void exercice9() {\n        collection.find(and(gte(&quot;avis.note&quot;, 8), lte(&quot;avis.note&quot;, 10)))\n            .projection(fields(excludeId(), include(&quot;nom&quot;)))\n            .forEach(doc -&gt; System.out.println(doc.toJson()));\n    }\n\n    public void exercice10() {\n        Date after = Date.from(Instant.parse(&quot;2025-11-15T00:00:00Z&quot;));\n\n        collection.find(gt(&quot;avis.date&quot;, after))\n            .projection(fields(excludeId(), include(&quot;nom&quot;)))\n            .forEach(doc -&gt; System.out.println(doc.toJson()));\n    }\n}\n<\/pre><\/div>\n\n\n<p>Pour ex\u00e9cuter tout \u00e7a, il ne reste plus qu&rsquo;\u00e0 compiler avec Maven avant. On met les logs MongoDB en mode warn pour \u00e9viter la pollution due au mode par d\u00e9faut, INFO&#8230;<br><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nmvn compile\nmvn exec:java -Dexec.mainClass=&quot;com.cesi.mongodb.Main&quot; \\\n  -Dorg.slf4j.simpleLogger.defaultLogLevel=info \\\n  -Dorg.slf4j.simpleLogger.log.org.mongodb.driver=warn \\\n  -Dorg.slf4j.simpleLogger.log.com.mongodb=warn\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Dans le cadre de ma formation de trois jours \u00ab MongoDB \u2013 exploiter vos donn\u00e9es efficacement \u00bb, destin\u00e9e \u00e0 de futurs ing\u00e9nieurs en informatique, je propose aux \u00e9tudiants de r\u00e9aliser les travaux dirig\u00e9s dans le langage de programmation de leur choix. De mon c\u00f4t\u00e9, j\u2019en profite chaque ann\u00e9e pour m\u2019essayer \u00e0 un nouveau langage ou [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[78,24,121,26,46],"tags":[43,122,87,13],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.6.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Interroger un cluster MongoDB Atlas avec Java - La Fabrique de code - Tech blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Interroger un cluster MongoDB Atlas avec Java - La Fabrique de code - Tech blog\" \/>\n<meta property=\"og:description\" content=\"Dans le cadre de ma formation de trois jours \u00ab MongoDB \u2013 exploiter vos donn\u00e9es efficacement \u00bb, destin\u00e9e \u00e0 de futurs ing\u00e9nieurs en informatique, je propose aux \u00e9tudiants de r\u00e9aliser les travaux dirig\u00e9s dans le langage de programmation de leur choix. De mon c\u00f4t\u00e9, j\u2019en profite chaque ann\u00e9e pour m\u2019essayer \u00e0 un nouveau langage ou [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/\" \/>\n<meta property=\"og:site_name\" content=\"La Fabrique de code - Tech blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-06T09:39:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-06T14:26:27+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@LaFabrique2Code\" \/>\n<meta name=\"twitter:site\" content=\"@LaFabrique2Code\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/\",\"url\":\"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/\",\"name\":\"Interroger un cluster MongoDB Atlas avec Java - La Fabrique de code - Tech blog\",\"isPartOf\":{\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#website\"},\"datePublished\":\"2026-03-06T09:39:29+00:00\",\"dateModified\":\"2026-03-06T14:26:27+00:00\",\"author\":{\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162\"},\"breadcrumb\":{\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"http:\/\/www.lafabriquedecode.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Interroger un cluster MongoDB Atlas avec Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#website\",\"url\":\"http:\/\/www.lafabriquedecode.com\/blog\/\",\"name\":\"La Fabrique de code - Tech blog\",\"description\":\"PHP objet, MySQL, Design Patterns, OOP...et plus !\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.lafabriquedecode.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g\",\"contentUrl\":\"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g\",\"caption\":\"admin\"},\"url\":\"http:\/\/www.lafabriquedecode.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Interroger un cluster MongoDB Atlas avec Java - La Fabrique de code - Tech blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/","og_locale":"fr_FR","og_type":"article","og_title":"Interroger un cluster MongoDB Atlas avec Java - La Fabrique de code - Tech blog","og_description":"Dans le cadre de ma formation de trois jours \u00ab MongoDB \u2013 exploiter vos donn\u00e9es efficacement \u00bb, destin\u00e9e \u00e0 de futurs ing\u00e9nieurs en informatique, je propose aux \u00e9tudiants de r\u00e9aliser les travaux dirig\u00e9s dans le langage de programmation de leur choix. De mon c\u00f4t\u00e9, j\u2019en profite chaque ann\u00e9e pour m\u2019essayer \u00e0 un nouveau langage ou [&hellip;]","og_url":"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/","og_site_name":"La Fabrique de code - Tech blog","article_published_time":"2026-03-06T09:39:29+00:00","article_modified_time":"2026-03-06T14:26:27+00:00","author":"admin","twitter_card":"summary","twitter_creator":"@LaFabrique2Code","twitter_site":"@LaFabrique2Code","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/","url":"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/","name":"Interroger un cluster MongoDB Atlas avec Java - La Fabrique de code - Tech blog","isPartOf":{"@id":"http:\/\/www.lafabriquedecode.com\/blog\/#website"},"datePublished":"2026-03-06T09:39:29+00:00","dateModified":"2026-03-06T14:26:27+00:00","author":{"@id":"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162"},"breadcrumb":{"@id":"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.lafabriquedecode.com\/blog\/2026\/03\/interroger-un-cluster-mongodb-atlas-avec-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"http:\/\/www.lafabriquedecode.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Interroger un cluster MongoDB Atlas avec Java"}]},{"@type":"WebSite","@id":"http:\/\/www.lafabriquedecode.com\/blog\/#website","url":"http:\/\/www.lafabriquedecode.com\/blog\/","name":"La Fabrique de code - Tech blog","description":"PHP objet, MySQL, Design Patterns, OOP...et plus !","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.lafabriquedecode.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162","name":"admin","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/image\/","url":"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g","contentUrl":"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g","caption":"admin"},"url":"http:\/\/www.lafabriquedecode.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts\/1343"}],"collection":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/comments?post=1343"}],"version-history":[{"count":20,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts\/1343\/revisions"}],"predecessor-version":[{"id":1367,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts\/1343\/revisions\/1367"}],"wp:attachment":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/media?parent=1343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/categories?post=1343"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/tags?post=1343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}