Sunteți pe pagina 1din 7

// Modelo Inicial

public class Alquiler


{

public int idAlquiler;


public DateTime fecha_alquiler;
public DateTime fecha_devolucion;
public int pelicula_idpelicula;
public char socio_idsocio;
public int sucursal_idsucursal;

public class Sucursal


{

public int idsucursal;


public string direccion_sucursal;
public string telefono_sucursal;
public string nit;
public string nombre_administrador;
public string cedula_administrador;

public class Pelicula


{

public int idpelicula;


public string titulo;
public string formato;
public double precio;
public int multas_idmultas;

public class multa


{

public int idmulta;


public DateTime fecha_multa;
public double valor;
public double saldo;

public class socio


{

public char idsocio;


public string cedula;
public string nombre;
public string direccion;
public string telefono;
public string Num_tarjeta;
public string tipo_socio;
public int multa_idmulta;
}

------------------------------------------------------------------ Modelo Alterno


Json

public class Main


{

public class Alquiler


{

public int idAlquiler;


public DateTime fecha_alquiler;
public DateTime fecha_devolucion;
public Pelicula pelicula;
public Socio socio;
public Sucursal sucursal;

public class Sucursal


{

public int idsucursal;


public string direccion_sucursal;
public string telefono_sucursal;
public string nit;
public string nombre_administrador;
public string cedula_administrador;

public class Pelicula


{

public int idpelicula;


public string titulo;
public string formato;
public double precio;
public Multa multa;

public class Multa


{

public int idmulta;


public DateTime fecha_multa;
public double valor;
public double saldo;

public class Socio


{

public char idsocio;


public string cedula;
public string nombre;
public string direccion;
public string telefono;
public string Num_tarjeta;
public string tipo_socio;
public Multa multa;

-------------------------------------------------------------------------- JSON

{ // Main}

{ // Alquiler
"idAlquiler": 0,
"fecha_alquiler": "0001-01-01T00:00:00",
"fecha_devolucion": "0001-01-01T00:00:00",
"pelicula": null,
"socio": null,
"sucursal": null
}

{ // Sucursal
"idsucursal": 0,
"direccion_sucursal": null,
"telefono_sucursal": null,
"nit": null,
"nombre_administrador": null,
"cedula_administrador": null
}

{ // Pelicula
"idpelicula": 0,
"titulo": null,
"formato": null,
"precio": 0.0,
"multa": null
}

{ // Multa
"idmulta": 0,
"fecha_multa": "0001-01-01T00:00:00",
"valor": 0.0,
"saldo": 0.0
}

{ // Socio
"idsocio": "\u0000",
"cedula": null,
"nombre": null,
"direccion": null,
"telefono": null,
"Num_tarjeta": null,
"tipo_socio": null,
"multa": null
}
--------------------------------------------------------------

1. Analizar el modelo entidad relaci�n y plantear en un archivo .


json una posible estructura de un documento que abarque la mayor�a
de elementos del modelo.

{
"alquiler": {
"idAlquiler": 0,
"fecha_alquiler": "0001-01-01T00:00:00",
"fecha_devolucion": "0001-01-01T00:00:00",
"pelicula": [
{
"idpelicula": 0,
"titulo": "",
"formato": "",
"precio": 0.0,
"multa": {
"idmulta": 0,
"fecha_multa": "0001-01-01T00:00:00",
"valor": 0.0,
"saldo": 0.0
}
},
{
"idpelicula": 0,
"titulo": "",
"formato": "",
"precio": 0.0,
"multa": {
"idmulta": 0,
"fecha_multa": "0001-01-01T00:00:00",
"valor": 0.0,
"saldo": 0.0
}
}
],
"socio": {
"idsocio": "a",
"cedula": "",
"nombre": "",
"direccion": "",
"telefono": "",
"num_tarjeta": "",
"tipo_socio": "",
"multa": {
"idmulta": 0,
"fecha_multa": "0001-01-01T00:00:00",
"valor": 0.0,
"saldo": 0.0
}
},
"sucursal": [
{
"idsucursal": 0,
"direccion_sucursal": "",
"telefono_sucursal": "",
"nit": "",
"nombre_administrador": "",
"cedula_administrador": ""
},
{
"idsucursal": 0,
"direccion_sucursal": "",
"telefono_sucursal": "",
"nit": "",
"nombre_administrador": "",
"cedula_administrador": ""
}
]
}
}

---------------------------------------------------------
2. Crear una base de datos en mongodb, asignarle un nombre relacionado al modelo.

use rents

-----------------------------------------------------------

3. Crear una colecci�n e insertar registros en ella (documentos) con el formato


json definido.

mongoimport --h localhost:37017 --d rents --c data < rents.json

----------------------------------------------------------

4. En un archivo .js crear las consultas:

a. Los registros donde los socios tengan alquiladas pel�culas con solo 2
formatos.

db.rents.find({ arquiler.pelicula.formato: { $all : ["VHS","DVD"] } }).pretty()

b. Los registros donde los socios tengan alquiladas pel�culas cuyos t�tulos
empiezan por la letra E.

db.rents.find({ alquiler.pelicula.titulo: { $regex: "^E" } }).pretty()

c. Los registros donde los socios sean de tipo_socio plata, proyectar todos los
campos menos el de _id.

db.rents.find({ alquiler.socio.tipo_socio: "PLATA" }, { _id: 0 }).pretty()

d. Los registros donde los socios tengan multas cuyo valor sea mayor a 70,
proyectar todos los campos menos los campos sucursal e _id.

db.rents.find({ alquiler.socio.multa.valor:{$gt:70}}, { sucursal: 0 , _id:


0 }).pretty()

e. Los registros donde el nombre de la sucursal termina con la letra d.

db.rents.find({ alquiler.sucursal.nit: { $regex: "d$" } }).pretty()


--------------------------------------------------------------------------

{
"alquiler": {
"idAlquiler": 9,
"fecha_alquiler": "04/02/2018",
"fecha_devolucion": "04/05/2018",
"pelicula": [
{
"idpelicula": 9,
"titulo": "The Shape of Wataaaaaaaaaa",
"formato": "DVD",
"precio": 2000.0,
"multa": { }
},
{
"idpelicula": 10,
"titulo": "The Walking DeadSU",
"formato": "VHS",
"precio": 500.0,
"multa": { }
}
],
"socio": {
"idsocio": "4",
"cedula": "105896478",
"nombre": "Carla Maldonado",
"direccion": "Cr44 Mz3",
"telefono": "745896584",
"num_tarjeta": "12547895",
"tipo_socio": "PLATA",
"multa": {}
},
"sucursal": [
{
"idsucursal": 2,
"direccion_sucursal": "Mz123 Cr54",
"telefono_sucursal": "745698575",
"nit": "lold",
"nombre_administrador": "Juan Merote",
"cedula_administrador": "178549685"
},
{
"idsucursal": 7,
"direccion_sucursal": "Mz123 Cr55",
"telefono_sucursal": "745696854254",
"nit": "jejeu",
"nombre_administrador": "Pablito clavo unclavito",
"cedula_administrador": "10548785451"
}
]
}
}

{
"alquiler": {
"idAlquiler": 2,
"fecha_alquiler": "04/02/2018",
"fecha_devolucion": "04/05/2018",
"pelicula": [
{
"idpelicula": 2,
"titulo": "The Shape of Water",
"formato": "DVD",
"precio": 2000.0,
"multa": {
"idmulta": 2,
"fecha_multa": "04/05/2018",
"valor": 500.0,
"saldo": 0.0
}
},
{
"idpelicula": 7,
"titulo": "The Walking Dead",
"formato": "BLU-RAY",
"precio": 500.0,
"multa": { }
}
],
"socio": {
"idsocio": "7",
"cedula": "105896478",
"nombre": "Jose Maldonado",
"direccion": "Cr44 Mz3",
"telefono": "745896584",
"num_tarjeta": "12547895",
"tipo_socio": "PLATA",
"multa": {
"idmulta": 7,
"fecha_multa": "04/01/2018",
"valor": 500.0,
"saldo": 0.0
}
},
"sucursal": [
{
"idsucursal": 2,
"direccion_sucursal": "Mz123 Cr54",
"telefono_sucursal": "745698575",
"nit": "lold",
"nombre_administrador": "Juan Merote",
"cedula_administrador": "178549685"
},
{
"idsucursal": 7,
"direccion_sucursal": "Mz123 Cr55",
"telefono_sucursal": "745696854254",
"nit": "jejeu",
"nombre_administrador": "Pablito clavo unclavito",
"cedula_administrador": "10548785451"
}
]
}
}