{"id":372,"date":"2023-09-04T09:50:31","date_gmt":"2023-09-04T07:50:31","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/?page_id=372"},"modified":"2025-07-26T16:12:49","modified_gmt":"2025-07-26T14:12:49","slug":"2-4-empezar-a-trabajar-con-el-sgbd-mongodb","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/2-4-empezar-a-trabajar-con-el-sgbd-mongodb\/","title":{"rendered":"2.4. Empezar a trabajar con el SGBD MongoDB"},"content":{"rendered":"<p>En la m\u00e1quina virtual proporcionada por la UOC tenemos instalado un SGBD MongoDB.<\/p>\n<p>Para conectarnos al servidor de MongoDB abrimos un terminal, escribimos <code>mongosh<\/code> y nos saldr\u00e1 el cursor <code>&gt;<\/code><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mariadb\" data-enlighter-theme=\"mowtwo\">student@ubuntuM0151:~$ mongosh\r\nCurrent Mongosh Log ID: 66f3c526cf082f27c4964032\r\nConnecting to: mongodb:\/\/127.0.0.1:27017\/?directConnection=true&amp;serverSelectionTimeoutMS=2000&amp;appName=mongosh+2.3.1\r\nUsing MongoDB: 7.0.14\r\nUsing Mongosh: 2.3.1\r\n\r\nFor mongosh info see: https:\/\/www.mongodb.com\/docs\/mongosh-shell\/\r\n\r\n-------\r\n    The server generated these startup warnings when booting\r\n    2024-09-25T10:08:11.986+02:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http:\/\/dochub.mongodb.org\/core\/prodnotes-filesystem\r\n    2024-09-25T10:08:17.269+02:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted\r\n-------\r\n<\/pre>\n<p>Ya estamos conectados al servidor con el cliente de la l\u00ednea de comandos y ya podremos escribir las \u00f3rdenes y sentencias para interactuar con el servidor de MongoDB.<\/p>\n<p>Para visualizar las bases de datos creadas:<\/p>\n<p><code>show dbs<\/code><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mariadb\" data-enlighter-theme=\"mowtwo\">&gt; show dbs\r\nadmin    0.000GB\r\nconfig   0.000GB\r\nlocal    0.000GB\r\n<\/pre>\n<p>Como a\u00fan no hemos creado ninguna base de datos, solo nos muestra las bases de datos del sistema.<\/p>\n<p>Para crear una nueva base de datos vac\u00eda usamos la orden <strong><code>use<\/code><\/strong>.<\/p>\n<p>Vamos a generar la base de datos <strong>uoc<\/strong>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">use uoc<\/pre>\n<p>La orden <strong>use<\/strong> sirve tanto para crear una base de datos nueva como para conectarse a una base de datos existente. La orden intenta conectarse a una base de datos existente y si no existe la crea.<\/p>\n<p>Esta es una caracter\u00edstica general de MongoDB, es muy flexible y da pocos errores. En otros sistemas de gesti\u00f3n de bases de datos como MySQL, al intentar conectar con una base de datos inexistente saltar\u00eda un error. En MongoDB no salta error y se crea la nueva base de datos. En realidad, no la crea, guarda espacio para crear en ella colecciones de documentos. Si generamos una nueva base de datos con el comando <strong>use<\/strong> y no creamos colecciones en ella, no queda almacenada.<\/p>\n<p>Vemos en esta secuencia de comandos c\u00f3mo consultamos las bases de datos existentes en el sistema con <code>show dbs<\/code>, generamos la base de datos <strong>uoc<\/strong> con <code>use uoc<\/code>, y c\u00f3mo cuando volvemos a consultar las bases de datos con <code>show dbs<\/code> no aparece la base de datos <strong>uoc<\/strong>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mariadb\" data-enlighter-theme=\"mowtwo\">&gt; show dbs\r\nadmin   0.000GB\r\nconfig  0.000GB\r\nlocal   0.000GB\r\n\r\n&gt; use uoc\r\nswitched to db uoc\r\n\r\n&gt; show dbs\r\nadmin   0.000GB\r\nconfig  0.000GB\r\nlocal   0.000GB<\/pre>\n<p>Para que la nueva base de datos quede guardada en el sistema es necesario que tenga colecciones de documentos.<\/p>\n<p>Vamos a crear ahora una nueva colecci\u00f3n vac\u00eda en la base de datos <strong>uoc <\/strong>utilizando la instrucci\u00f3n <code>createCollection()<\/code>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mariadb\" data-enlighter-theme=\"mowtwo\">&gt; use uoc\r\nswitched to db uoc\r\n&gt; db.createCollection(chr1);\r\nuncaught exception: ReferenceError: chr1 is not defined :\r\n@(shell):1:1\r\n&gt; db.createCollection(\"chr1\");\r\n{ \"ok\" : 1 }\r\n&gt; show dbs\r\nadmin  0.000GB\r\nconfig 0.000GB\r\nlocal  0.000GB\r\nuoc    0.000GB\r\n&gt;<\/pre>\n<p>Volvemos a conectarnos a la base de datos <strong>uoc<\/strong> con <code>use uoc<\/code> y creamos la colecci\u00f3n de documentos vac\u00eda llamada <strong>chr1<\/strong>.<\/p>\n<p>Si os fij\u00e1is, primero ejecutamos la instrucci\u00f3n o funci\u00f3n <code>db.createCollection(chr1)<\/code>; pero da error porque el par\u00e1metro que espera la funci\u00f3n no est\u00e1 entre comillas simples: <strong>\u00abchr1\u00bb<\/strong>.<\/p>\n<p>Al escribir el par\u00e1metro entre comillas simples <code>db.createCollection(\"chr1\")<\/code>; la nueva colecci\u00f3n llamada <strong>chr1 <\/strong>se crea correctamente en la base de datos <strong>uoc<\/strong>, que ya no est\u00e1 vac\u00eda, y al ejecutar <code>show dbs<\/code> ya nos muestra la base de datos <strong>uoc<\/strong>.<\/p>\n<p>Vamos a analizar la instrucci\u00f3n <code>db.createCollection(\"chr1\")<\/code>; y nos servir\u00e1 para entender c\u00f3mo funcionan las instrucciones en MongoDB. \u00a0Como ya estamos en la base de datos <strong>uoc<\/strong>, con la parte de la instrucci\u00f3n <code>db\u2026..<\/code> se refiere a la base de datos que estamos usando, y a continuaci\u00f3n la instrucci\u00f3n <code>createCollection()<\/code> que en realidad es una funci\u00f3n que puede usar par\u00e1metros entre par\u00e9ntesis.<\/p>\n<p>Como ya veremos, la mayor\u00eda de las instrucciones son funciones que pueden usar o no par\u00e1metros. Si la instrucci\u00f3n no necesita par\u00e1metros dejaremos los par\u00e9ntesis vac\u00edos <strong>()<\/strong>.<\/p>\n<p>Vamos a ver algunos <strong>comandos \u00fatiles<\/strong> de MongoDB:<\/p>\n<ul>\n<li><code>db.help()<\/code> Muestra la ayuda para los m\u00e9todos de la base de datos.<\/li>\n<li><code>db.&lt;collection&gt;.help()<\/code> Muestra la ayuda para los m\u00e9todos de la colecci\u00f3n. La &lt;collection&gt; puede ser el nombre de una colecci\u00f3n ya creada o no creada.<\/li>\n<li><code>Show db<\/code> Muestra la lista de todas las bases de datos del sistema.<\/li>\n<li><code>use db<\/code> Cambia de la base de datos actual a la base de datos &lt;db&gt;.<\/li>\n<li><code>show collections<\/code> Muestra la lista de todas las colecciones de la base de datos actual.<\/li>\n<li><code>show users<\/code> Muestra la lista de todos los usuarios de la base de datos actual.<\/li>\n<li><code>show databases<\/code> Nuevo a partir de la versi\u00f3n 2.4. Muestra la lista de todas las bases de datos disponibles.<\/li>\n<li><code>db.&lt;collection&gt;.find()<\/code> Muestra todos los documentos de la colecci\u00f3n &lt;collection&gt;.<\/li>\n<li><code>db.&lt;collection&gt;.find().pretty()<\/code> Muestra todos los documentos de la colecci\u00f3n &lt;collection&gt; en un formato JSON m\u00e1s le\u00edble.<\/li>\n<\/ul>\n<p>Para ver las colecciones creadas en la base de datos usamos la instrucci\u00f3n siguiente:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">show collections<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mariadb\" data-enlighter-theme=\"mowtwo\">&gt; show collections\r\nchr1<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En la m\u00e1quina virtual proporcionada por la UOC tenemos instalado un SGBD MongoDB. Para conectarnos al servidor de MongoDB abrimos un terminal, escribimos mongosh y nos saldr\u00e1 el cursor &gt; student@ubuntuM0151:~$ mongosh Current Mongosh Log ID: 66f3c526cf082f27c4964032 Connecting to: mongodb:\/\/127.0.0.1:27017\/?directConnection=true&amp;serverSelectionTimeoutMS=2000&amp;appName=mongosh+2.3.1 Using MongoDB: 7.0.14 Using Mongosh: 2.3.1 For mongosh info see: https:\/\/www.mongodb.com\/docs\/mongosh-shell\/ &#8212;&#8212;- The server generated [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages\/372"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/comments?post=372"}],"version-history":[{"count":16,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages\/372\/revisions"}],"predecessor-version":[{"id":1043,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages\/372\/revisions\/1043"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/media?parent=372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}