MONGO DB Bases de datos NoSQL ==================== 1.- Descargar e instalar la versión apropiada --------------------------------------------- Sin problemas. Crear la carpeta c:\data\db donde se guardarán los datos 2.- Poner en marcha el servidor ------------------------------- Posicionarse en la carpeta C:\Program Files\MongoDB\Server\3.2\bin Abrir un intérprete de comandos (May+Boton derecho lo facilita -> Abrir intérprete de comandos aquí) mongod.exe El puerto de escucha es el 27017 3.- Abrir un cliente (shell de Mongo) ------------------------------------- Hay algunas utilidades gráficas, pero lo haremos a pelo Otro intérprete de comandos sobre C:\Program Files\MongoDB\Server\3.2\bin mongo.exe El cliente está a la espera de órdenes. Puedes ejecutar órdenes jscript >cls >2+2 >Math.sin(Math.PI/2) >x=200 >x >x*3 >new Date() >new Date("2020/02/15 11:35"); 4.- Cambio de base de datos (catalogo) ------------------------------------- >help --> Ayuda general >db.help() --> Ayuda sobre comandos de base de datos >show dbs ---> Muestra las bases de datos del servidor >db ---> Muestra la base de datos actual (en la que trabaja) >use tienda ---> Cambia a la BD tienda >show collections --> Muestra las colecciones de la BD actual (como "tablas") >db.dropDatabase() ---> Elimina la BD actual (ojo, primero db para saber) 5.- Crear/Borrar colecciones ---------------------------- No es necesario crearlas, con insertar un documento, la crea >db.createCollection("productos") >db.productos.drop() ---> Borra la collection productos 6.- INSERTAR un documento en una coleccion (inserta objetos JSON etiqueta:valor) -------------------------------------------------------------------------------- >db.productos.insert({"nombre":"Portatil"}) >db.productos.insert({"nombre":"Monitor", "precio":99.9}) Los objetos NO tienen que tener la misma estructura. Pueden ser muy distintos, como por ejemplo: { "nombre": "Ordenador sobremesa", "precio": 450.99, "activo": true, "entrada": new Date("2020/02/15 13:00"), "datos": [1,"a",[]], "fabricante":{ "nombre": "Dell", "version": "xp", "localizacion": { "ciudad": "Cuenca", "direccion": "C/Pez, 34" } } } 7.- SELECCIONAR documentos -------------------------- >db.productos.find() --> Muestra el contenido de la coleccion >db.productos.find().pretty() ---> Los muestra un poco mejor, en más de una linea >db.productos.find({"nombre":"Monitor"}) ---> Busca los objetos que coinciden >db.productos.find({"nombre":"Monitor","precio":99.99}) ---> Varias condiciones >db.productos.findOne({"nombre":"Monitor"}) ---> Localiza al primero >db.productos.find({"nombre":"Monitor"},{"nombre":1,"precio":1,"_id":0}) ---> Localiza y muestra solo la informacion deseada >db.productos.find({"nombre":"Monitor"}).sort({nombre:1}) ---> Muestra ordenados >db.productos.find().limit(2) ---> Los 2 primeros >db.productos.count() ---> Cuenta el numero de documentos >db.productos.find().forEach(producto=>print("Objeto: "+producto.nombre+" , Precio: "+producto.precio)) 8.- ACTUALIZAR documentos. AÑADIR un atributo --------------------------------------------- >db.productos.update({"nombre":"Portatil"},{$set:{"precio":333}}) >db.productos.update({"nombre":"Raton"},{$set:{"precio":12.5}},{upsert:true}) ---> Si no existe, lo crea. Si existe, lo modifica >db.productos.update({"nombre":"Raton"},{$inc:{"precio":1}}) ---> Incrementa el precio del raton en 1 >db.productos.update({"nombre":"Raton"},{$rename: {"precio":"price"}}) --> Cambia el nombre del atributo 9.- BORRAR documentos --------------------- >db.productos.remove({"nombre":"Raton"}) ---> No te olvides de poner el where