{"id":66,"date":"2017-02-14T10:11:18","date_gmt":"2017-02-14T09:11:18","guid":{"rendered":"http:\/\/union31xh.free.fr\/?p=66"},"modified":"2017-02-20T19:29:37","modified_gmt":"2017-02-20T18:29:37","slug":"mongodb-commandes-de-bases-shell-mongo","status":"publish","type":"post","link":"https:\/\/blogperso.union31.fr\/?p=66","title":{"rendered":"MongoDB : commandes de bases (shell Mongo) et autres"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Sommaire<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogperso.union31.fr\/?p=66\/#I_Introduction\" >I Introduction<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogperso.union31.fr\/?p=66\/#II_Ressources_web\" >II Ressources web<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogperso.union31.fr\/?p=66\/#III_Commandes_de_base\" >III Commandes de base<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogperso.union31.fr\/?p=66\/#III1_Manipulation_des_bases_de_donnees\" >III.1 Manipulation des bases de donn\u00e9es<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blogperso.union31.fr\/?p=66\/#III2_Manipulation_des_collections_au_sein_dune_base_de_donnees\" >III.2 Manipulation des collections au sein d&rsquo;une base de donn\u00e9es<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blogperso.union31.fr\/?p=66\/#III3_Travail_au_sein_dune_collection\" >III.3 Travail au sein d&rsquo;une collection<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blogperso.union31.fr\/?p=66\/#III4_Script_charger_les_scripts_integres_sur_le_serveur\" >III.4 Script : charger les scripts int\u00e9gr\u00e9s sur le serveur<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blogperso.union31.fr\/?p=66\/#III5_SauvegardeRestauration_dune_base_de_donnees\" >III.5 Sauvegarde\/Restauration d&rsquo;une base de donn\u00e9es<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"I_Introduction\"><\/span>I Introduction<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Commandes de bases permettant de manipuler des bases de donn\u00e9es MongoDB avec le client \u00ab\u00a0Mongo\u00a0\u00bb.<\/p>\n<p>Client \u00ab\u00a0Shell Mongo\u00a0\u00bb : Aller dans le r\u00e9pertoire d&rsquo;installation de MongoDB. Puis lancer mongo.exe qui se trouve dans &#8230;.\/bin\/Mongo.exe<\/p>\n<h1><span class=\"ez-toc-section\" id=\"II_Ressources_web\"><\/span>II Ressources web<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>initiation : <a href=\"https:\/\/docs.mongodb.com\/manual\/mongo\/\" target=\"_blank\">https:\/\/docs.mongodb.com\/manual\/mongo\/<\/a><\/p>\n<p>command shell en d\u00e9tail : <a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/method\/\" target=\"_blank\">https:\/\/docs.mongodb.com\/manual\/reference\/method\/<\/a><\/p>\n<h1><span class=\"ez-toc-section\" id=\"III_Commandes_de_base\"><\/span>III Commandes de base<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"III1_Manipulation_des_bases_de_donnees\"><\/span>III.1 Manipulation des bases de donn\u00e9es<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>show dbs<\/strong> : [shell] montre toutes les bases de donn\u00e9es du serveur<\/li>\n<li><strong>db.adminCommand(&lsquo;listDatabases&rsquo;)<\/strong> : montre toutes les bases de donn\u00e9es du serveur<\/li>\n<li><strong>db<\/strong> : [shell] montre la base de donn\u00e9es en cours<\/li>\n<li><strong>use &lt;nom_base_de_donn\u00e9es&gt;<\/strong> : [shell] s\u00e9lectionne une base de donn\u00e9es de travail. Cr\u00e9ation si elle n&rsquo;existe pas.<\/li>\n<li><strong>db.getSiblingDB(nom_bdd)<\/strong> : s\u00e9lectionne une base de donn\u00e9es de travail. Cr\u00e9ation si elle n&rsquo;existe pas ;<\/li>\n<li><strong>db.dropDatabase()<\/strong> : efface la base de donn\u00e9es en cours.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"III2_Manipulation_des_collections_au_sein_dune_base_de_donnees\"><\/span>III.2 Manipulation des collections au sein d&rsquo;une base de donn\u00e9es<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>db.getCollectionNames()<\/strong> : liste des collections au sein d&rsquo;une base.<\/li>\n<li><strong>show collections<\/strong> : [shell] liste des collections au sein du base (r\u00e9sultat sous format texte et non JSON)<\/li>\n<li><tt class=\"xref mongodb mongodb-method docutils literal\"><strong>db.createCollection(\"Nom_collection\")<\/strong> : cr\u00e9er une collection vide<span class=\"pre\"><br \/>\n<\/span><\/tt><\/li>\n<li><strong>db.<em>ancien_nom_collection<\/em>.renameCollection(\u00ab\u00a0<em>nouveau_nom<\/em>\u00ab\u00a0)<\/strong> : renomme une collection.<\/li>\n<li><strong>db.<em>nom_collection<\/em>.drop()<\/strong> : supprime une collection<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"III3_Travail_au_sein_dune_collection\"><\/span>III.3 Travail au sein d&rsquo;une collection<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>db.<em>nom_collection<\/em>.find()<\/strong> : recherche enregistrements dans une collection pr\u00e9cise. Les filtres sont \u00e0 mettre en place dans la m\u00e9thode find() sous forme de texte\/json. Retourne un objet que l&rsquo;on peut parcourir avec l&rsquo;objet \u00ab\u00a0cursor\u00a0\u00bb.\n<ul>\n<li>d\u00e9tails d&rsquo;une recherche : <a href=\"https:\/\/docs.mongodb.com\/manual\/tutorial\/query-documents\/\" target=\"_blank\">lien MongoDB<\/a>\n<ul>\n<li>op\u00e9rateurs ET \/ OU \/ IN et retour que de certains champs &#8230;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>count() <\/strong>: compte le nombre d&rsquo;\u00e9l\u00e9ments :\n<ul>\n<li><strong>db.<em>nom_collection<\/em>.count()<\/strong> : compte tous les documents d&rsquo;une collection<\/li>\n<li><strong>db.<em>nom_collection<\/em>.find().count()<\/strong> : compte tous les documents recherch\u00e9s<strong><br \/>\n<\/strong><\/li>\n<\/ul>\n<\/li>\n<li><strong>sort()<\/strong> : trier le r\u00e9sultat<\/li>\n<\/ul>\n<p>Exemple1 : recherche par rapport \u00e0 un champ pr\u00e9cis<\/p>\n<p style=\"padding-left: 30px;\">Recherche dans la collection \u00ab\u00a0produit\u00a0\u00bb les documents dont l&rsquo;id est 3021760403891<\/p>\n<p style=\"padding-left: 30px;\">db.produit.find({_id:\u00a0\u00bb3021760403891&Prime;})<\/p>\n<p>Exemple 2 : recherche en case sensitive.<\/p>\n<p style=\"padding-left: 30px;\">Pour cela il faut utiliser les expressions r\u00e9guli\u00e8res. Ici recherche du mot lustucru dans la propri\u00e9t\u00e9 champ \u00ab\u00a0brands\u00a0\u00bb<\/p>\n<p style=\"padding-left: 30px;\">db.produit.find({brands : \/^lustucru$\/i})<\/p>\n<ul>\n<li><strong>db.<em>nom_collection<\/em>.insert(un_document)<\/strong> : ins\u00e8re un document au sein d&rsquo;une collection<\/li>\n<li><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Liste des correspondances SQL &#8211;&gt; Mongodb :<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/docs.mongodb.com\/manual\/reference\/sql-comparison\/\" target=\"_blank\">https:\/\/docs.mongodb.com\/manual\/reference\/sql-comparison\/<\/a><\/p>\n<p>Bref, par d\u00e9faut, on oubli les jointures, les group by, les fonctions(sum), etc&#8230; il va falloir coder en javascript pour retrouver tout cela &#8230;<\/p>\n<p>Exemple de GroupBy \/ Distinct :<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/docs.mongodb.com\/manual\/aggregation\/\" target=\"_blank\">https:\/\/docs.mongodb.com\/manual\/aggregation\/<\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/www.mkyong.com\/mongodb\/mongodb-aggregate-and-group-example\/\" target=\"_blank\">https:\/\/www.mkyong.com\/mongodb\/mongodb-aggregate-and-group-example\/<\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"III4_Script_charger_les_scripts_integres_sur_le_serveur\"><\/span>III.4 Script : charger les scripts int\u00e9gr\u00e9s sur le serveur<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Charger les scripts en m\u00e9moire.<\/p>\n<ol>\n<li><strong>db.loadServerScripts()<\/strong><\/li>\n<li>s\u00e9lectionner la base de donn\u00e9es de travail<\/li>\n<li>executer le script (fonction javascript)<\/li>\n<\/ol>\n<p>Si un script est modifi\u00e9, il faut imp\u00e9rativement le recharger en m\u00e9moire (db.loadServerScripts() &#8230;)<\/p>\n<h2><span class=\"ez-toc-section\" id=\"III5_SauvegardeRestauration_dune_base_de_donnees\"><\/span>III.5 Sauvegarde\/Restauration d&rsquo;une base de donn\u00e9es<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Il faut utiliser l&rsquo;outil \u00ab\u00a0mongorestore.exe\u00a0\u00bb situ\u00e9 dans le r\u00e9pertoire bin.<\/p>\n<p>commande : <strong>.\/mongorestore.exe -d nom_base -c nom_collection chemin_du_fichier_bson<\/strong><\/p>\n<p>Exemple :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-82\" src=\"http:\/\/union31xh.free.fr\/wp-content\/uploads\/2017\/02\/Mongodb_fichiers_restore-1024x401.png\" alt=\"\" width=\"525\" height=\"206\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I Introduction Commandes de bases permettant de manipuler des bases de donn\u00e9es MongoDB avec le client \u00ab\u00a0Mongo\u00a0\u00bb. Client \u00ab\u00a0Shell Mongo\u00a0\u00bb : Aller dans le r\u00e9pertoire d&rsquo;installation de MongoDB. Puis lancer mongo.exe qui se trouve dans &#8230;.\/bin\/Mongo.exe II Ressources web initiation<\/p>\n","protected":false},"author":1,"featured_media":303,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,4],"tags":[],"class_list":["post-66","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-_dev","category-_systeme"],"_links":{"self":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts\/66","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=66"}],"version-history":[{"count":1,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions"}],"predecessor-version":[{"id":227,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions\/227"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/media\/303"}],"wp:attachment":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}