Conexion con bases de datos
Conexion mediante MySQL
Es un modelo de base de datos relacional basado en tablas relacionadas y a su vez estas en registos llamadas filas formadas por campos y columnas que tienen la misma estructura.
MySql es un sistema de gestión de bases de datos de codigo abierto que se puede descargar de la pagina https://dev.mysql.com/downloads/installer/
Para
ello seleccionamos el sistema operativo y seleccionaremos el instalador MySQL
mysql-installer-community-8.0.18.0.msi o la ultima version que haya disponible
donde instalaremos los elementos mas comunes para trabajar con nodeJS:
- Servidor MySQL
- Conectores MySQL
- MySQL Workbench
- MySQL Shell
Instalacion de MySQL
Instalamos mysql en el sistema si no lo tenemos instalado y accedemos mediante:
mysql -u nombreUsuario –p
Creamos una nueva base de datos donde la vamos a llamar clientes:
create database clientes;
Miramos haber si efectivamente se ha creado:
show databases;
Usamos la base de datos de Clientes:
use clientes;
Creamos las siguiente tabla en nuestra base de datos:
CREATE TABLE IF NOT EXISTS clientes.usuario(dni Varchar(30) primary key not null, nombre Varchar(30), primerApellido Varchar(30), segundoApellido Varchar(30));
Instalamos el paquete:
npm install mysql
Vamos a usar el driver de mySql:
var mysql = require('mysql');
connection = mysql.createConnection({
host: 'localhost',
port: '3306',
user: 'nombreUsuario',
password: 'clave’
});
Creamos nuestro objeto usuario:
var Usuario = function(){
this.dni='';
this.nombre='';
this.primerApellido='';
this.segundoApellido='';
}
Usuario.prototype.setDni= function(dni){
this.dni = dni;
}
Usuario.prototype.setNombre= function(nombre){
this.nombre = nombre;
}
Usuario.prototype.setPrimerApellido= function(primerApellido){
this.primerApellido = primerApellido;
}
Usuario.prototype.setSegundoApellido= function(segundoApellido){
this.segundoApellido = segundoApellido;
}
Usuario.prototype.getDni= function(){
return this.dni;
}
Usuario.prototype.getNombre= function(){
return this.nombre;
}
Usuario.prototype.getPrimerApellido= function(){
return this.primerApellido;
}
Usuario.prototype.getSegundoApellido= function(){
return this.segundoApellido;
}
Usuario.prototype.getJSON = function(){
return {
dni:this.dni,
nombre:this.nombre,
primerApellido:this.primerApellido,
segundoApellido:this.segundoApellido,
}
}
module.exports = Usuario;
Sobre el objeto connection vamos vamos a realizar las siguientes funciones:
- Insercion de registros
- Lectura de registros
- Eliminancion de registros
- Actualizacion de registros
Insercion de registros
insertarTablaUsuario = function (dni, nombre, primerApellido, segundoApellido, connection, callback) {
var sql = 'INSERT INTO clientes.usuario VALUES("' + dni + '","' + nombre + '","' + primerApellido +
'","' + segundoApellido + '")';
connection.query(sql,
function (err, results, fields) {
if (err) {
callback(err,"Error de inserccion en la tabla usuario, la clave primaria ya existe");
} else {
callback(null,"Todo correcto en la inserccion de la tabla de usuario");
}
});
};
Lectura
de registros
getUsuario = function(dni,connection,callback){
var sql = 'SELECT dni,nombre,primerApellido,segundoApellido FROM clientes.usuario WHERE clientes.usuario.dni="' + dni + '"';
connection.query(sql,
function (err, results, fields) {
if (err) {
callback(err,"Imposible la conexion con la base de datos",null);
} else {
if (!results) {
callback(null, false,null);
}
else {
//insertamos el dato en el objeto
var usuarioJSON = [];
for (i=0; i < results.length; i++){
usuario = new Usuario();
var registro = results[i];
usuario.setDni(registro.dni);
usuario.setNombre(registro.nombre);
usuario.setPrimerApellido(registro.primerApellido);
usuario.setSegundoApellido(registro.segundoApellido);
var usuarioJson = usuario.getJSON();
usuarioJSON[i]= usuarioJson;
}
callback(null,false,usuarioJSON);
}
}
});
}
Eliminacion de registros
borrarUsuario = function(dni,connection,callback){
var sql ='DELETE FROM clientes.usuario WHERE dni = "' + dni + '"';
connection.query(sql,
function (err, results, fields) {
if (err)
{
callback(err,"Error de Borrado en la tabla usuario");
} else {
callback(null,"Borrado correcto en la tabla usuario");
}
});
}
Modificación
de registros
modificarUsuario = function (dni, nombre, primerApellido, segundoApellido, connection, callback) {
var sql = 'update clientes.usuario set nombre ="' + nombre + '",' + ' primerApellido ="' + primerApellido + '",' +
' segundoApellido ="' + segundoApellido + '" WHERE dni = "'+ dni + '"';
console.log(sql);
connection.query(sql,
function (err, results, fields) {
if (err) {
callback(err,"Error de modificacion en la tabla usuario");
} else {
callback(null,"Todo correcto en la modificacion de la tabla de usuario");
}
});
};
Conexion mendiante NodeJS:
MongoDB
Es un modelo de base de datos NoSQL
que esta orientado a documentos y es un softawe de codigo abierto que guarda
los documentos en formato BSON.
Instalacion de mongodb
Para la instalación vamos a la página de mongo:
Descargamos la ultima version para
windows 10.
Agregamos a la variable de entorno path la ruta:
C:\Program
Files\MongoDB\Server\4.2\bin
MongoDB necesita que creemos un directorio llamado data para los datos y las carpetas db y logs
· \data\db
· \data\logs
md \data\db
md \data\logs
Insertamos en el archivo de configuracion mongo.cfg:
auth = true
Establecemos la variable de entorno path:
C:\Program Files\MongoDB\Server\4.2\bin
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: C:\Program Files\MongoDB\Server\4.2\data
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: C:\Program Files\MongoDB\Server\4.2\log\mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
#processManagement:
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
auth = true
Instalacion de Robo3T
Vamos a la pagina https://robomongo.org/ y descargamos la herramienta Robo3T.
Iniciamos en una ventana cmd como
administrador y ejecutamos mongod en la carpeta de para iniciar el
servidor.
Tenemos varias opciones para los clientes
de mongoDB:·
- mongo (desde la consola cmd, abriendo otra ventana cmd como administrador y ejecutado mongo).
- Robo3T.
- A traves de codigo mendiante NodeJS.
Si usamos mongo desde la consola
cmd:
Usamos use miBaseDatos para crear nuestra base de datos:
use nombreBaseDatos
Para crear usuario en mongoDB:
db.createUser({
user: "miUsuario",
pwd: "miContraseña",
roles: ["readWrite"]
})
Para ver las bases de datos creadas:
show dbs
Para ver las colecciones:
show collections
Con db.nombreColeccion.operaciónes para actuamos sobre nuestras colecciones:
Inserción en mongoDB:
db.usuarios.insert({dni:'1', nombre: 'javier', primerApellido: 'heras', segundoApellido: 'lopez'});
Lectura de documentos:
db.nombreBaseDatos.find(
//Seleccion
//Proyeccion
)
Ejemplo buscamos aquellos usuarios con dni 23, que nos proyecten los campos dni, nombre, primerApellido y segundoApellido que ademas nos muestren 10 documentos:
db.usuarios.find(
{dni: {$eq: "23"}}, // Seleccion
{dni: 1, nombre: 1, primerApellido: 1 , segundoApellido: 1} // projección
).limit(10);
Borrado de documentos:
db.nombreBaseDatos.remove(
//Seleccion
)
db.usuarios.remove(
{dni: {$eq: "23"}}
)
Modificacion de documentos:
db.nombreBaseDatos. update (
//Seleccion
//Modificacion
)
db.usuarios.update(
{dni: {$eq: "23"}},
{ $set: {nombre: "Juan", primerApellido: "Garcia" , segundoApellido: "Lopez"}}
)
A traves de codigo mendiante NodeJS:
Vamos a usar el paquete de mongoose donde podemos acceder a su pagina web para ver la documentacion en https://mongoosejs.com/docs/
Instalamos el paquete:
npm install mongoose
Vamos a usar el driver mongoose:
var mongoose = require('mongoose');
mongoose.connect('mongodb://javier:javier@localhost:27017/usuario', { useNewUrlParser: true }, function (err) {
if (err) {
console.log("Error de conexion: " + err);
return callback(err);
} else {
console.log('Successfully connected');
}
});
Operaciones sobre los datos desde nodeJS
- Inserción de documentos
- Lectura de documentos
- Eliminación de documentos
- Actualización de documentos
Inserción de documentos
Creamos una colección de usuarios donde cada usuario tendra:
- dni
- nombre
- primerApellido
- segundoApellido
Vamos a crear el modelo para guardar los usuarios:
Modelo de usuario:
1. Descripcion:
En primer lugar creamos la descripcion de nuestro modelo donde definimos los atributos que tendra el documento:
var descripcionUsuario = {
dni: String,
nombre : String,
primerApellido : String,
segundoApellido : String,
}
2. Esquema
var esquema = mongoose.Schema;
var schemaUsuario = esquema(descripcionUsuario);
3. Modelo
Con el método model(),
crearemos un modelo con el nombre de la coleccion ‘usuario’, donde la base de
datos le añadira una ‘s’ al final y despues le pasamos el esquema, sera la
estructura del modelo.
var UsuarioData = mongoose.model('usuario’, schemaUsuario);
Creamos una instancia de UsuarioData:
var usuario = new UsuarioData();
Asignamos los datos:
usuario.dni =’23’
usuario.nombre =’Juan’
usuario.primerApellido=’Garcia’
usuario.segundoApellido=’Lopez’
Insertamos en la
colección:
usuario.save(function(err){
if (err){
callback(err)
}else{
Callback(null,”Usuario Insertado Corretamente”);
}
Lectura de documentos
Usamos la siguiente
instrucción:
Hacemos cuatro tipos de lecturas:
- Mediante la query con operaciones logicas y de comparacion
- Mediante findById
- Mediante la proyección
- Mediante una ordenacion
Mediante la query con
operaciones logicas y de comparación:
colección.findById(id, function(err,documento){
………………..
})
Donde id puede ser
- Una cadena que mongoose se encargara de convertir al tipo ObjecId
- Un objeto ObjectId
leer = function(usuario){
usuario.find({$or : [ {nombre :{'$eq': 'Juan'}},{ciudad :{'$eq': 'Pedro'}} ]},function(err,documentos){
if (err){
console.log("Ha ocurrido un error");
}
else {
var numeroDocumentos = documentos.length;
for (i=0; i < numeroDocumentos; i++){
var documento = documentos[i];
var dni = documento.dni;
var nombre = documento.nombre;
var primerApellido = documento.primerApellido;
var segundoApellido = documento.segundoApellido;
console.log('Dni: ' + dni);
console.log('Nombre: ' + nombre);
console.log('PrimerApellido: ' + primerApellido);
console.log('SegundoApellido: ' + segundoApellido);
console.log('\n');
}
}
});
}
var ObjectId =
mongoose.Types.ObjecId;
var id new ObjectId(“5ea0640339886f428895278e”);
leer2 = function(Usuario){
//ObjecId
var ObjectId = mongoose.Types.ObjectId;
var id = new ObjectId("5ea0640339886f428895278e");
Usuario.findById(id,function(err,documento){
if (err){
console.log('Error de lectura');
}else {
var numeroDocumentos = documentos.length;
for (i=0; i < numeroDocumentos; i++){
var documento = documentos[i];
var dni = documento.dni;
var nombre = documento.nombre;
var primerApellido = documento.primerApellido;
var segundoApellido = documento.segundoApellido;
console.log('Dni: ' + dni);
console.log('Nombre: ' + nombre);
console.log('PrimerApellido: ' + primerApellido);
console.log('SegundoApellido: ' + segundoApellido);
console.log('\n');
}
});
}
Mediante la proyección:
leer3 = function(Usuario){
//Sobre la coleccion mostramos el nombre y los apellidos
Usuario.find({}, {nombre : 1, primerApellido: 1},function(err,documentos){
var numeroDocumentos = documentos.length;
for (i=0; i < numeroDocumentos; i++){
var documento = documentos[i];
var nombre = documento.nombre;
var primerApellido = documento.primerApellido;
console.log('Nombre: ' + nombre);
console.log('PrimerApellido: ' + primerApellido);
console.log('\n');
}
});
}
Eliminación de documentos:
Colección.remove({query},function(err){
……
})
borrado = function(Usuario){
Usuario.remove({nombre :{'$eq': 'Juan'}},function(err){
if (err){
console.log("Ha habido un error");
} else {
console.log("El borrado ha sido realizado");
}
});
}
var ObjectId = mongoose.Types.ObjecId;
var id new ObjectId(“5ea0640339886f428895278e”);
colección.findByIdAndRemove(id, function(err){
….
}
Operación drop que elimina la colección de nuestra base de datos
drop = function(){
var coleccion = mongoose.connection.collections.usuario;
coleccion.drop(function(err){
if (err){
console.log("Ha habido un error");
} else {
console.log("El coleccion ha sido borrada");
}
});
}
Ordenación de documentos
colección.find({query},{proyecion},{ sort : {<campo> : <1 o -1>}}), function (err,docs){
// Tratamos los documentos devueltos
});
- 1 ordenacion ascendente
- -1 ordenacion descendente
ordenar = function(Usuario){
//Sobre la coleccion mostramos el nombre y los apellidos
Usuario.find({}, {dni : 1, nombre: 1, primerApellido: 1, segundoApellido: 1},{sort : {nombre : 1} },function(err,documentos){
var numeroDocumentos = documentos.length;
for (i=0; i < numeroDocumentos; i++){
var numeroDocumentos = documentos.length;
for (i=0; i < numeroDocumentos; i++){
var documento = documentos[i];
var dni = documento.dni;
var nombre = documento.nombre;
var primerApellido = documento.primerApellido;
var segundoApellido = documento.segundoApellido;
console.log('Dni: ' + dni);
console.log('Nombre: ' + nombre);
console.log('PrimerApellido: ' + primerApellido);
console.log('SegundoApellido: ' + segundoApellido);
console.log('\n');
}
});
}
Colección.update({selección},{actualización},{multi: true },function(err){
……
})
La opcion {multi: true } es opcional nos indica la actualización simultanea de
varios documentos.
modificación = function(Usuario){
UsuarioData.update({dni :'02345348I'},{$set: {nombre : 'Pedro', primerApellido : 'Lopez'}}, function(err){
if (err){
console.log("Ha habido un error");
} else {
console.log("La actualización ha sido realizada correctamente");
}
});
}
El método updateOne () se usa para actualizar cada documento que coincida con el filtro.
Tiene tres parametros, query,
actualizacion y una función de callback y su devolución tiene dos parametros el
error si existe y el resultado.
Colección.updateOne({query},{actualizacion},function(err){
……
})
modificacion = function(Usuario){
Usuario.updateOne(
{ nombre: "Juan" },
{ $set: { nombre: "Pedro" } },
function(err, documentos) {
if (err) {
res.send(err);
} else {
res.send(documentos);
}
}
);
}
El método updateMany () se usa para actualizar documentos que coincidan con el filtro.
Colección.updateMany({query},{actualizacion},function(err){
……
})
modificacion = function(Usuario){
Usuario.updateMany(
{ nombre: "Juan" },
{ $set: { nombre: "Pedro" } },
function(err, documentos) {
if (err) {
res.send(err);
} else {
res.send(documentos);
}
}
);
}
El método replaceOne() se usa para reemplazar todo el documento que coincida con el filtro, a diferencia que updateOne () que solo permite actualizar campos y ademas se pueden agregar nuevos campos sin perder los anteriores.
Colección.replaceOne({query},{actualizacion},function(err){
……
})
modificacion = function(Usuario){
Usuario.replaceOne(
{ nombre: "Juan" },
{ $set: { nombre: "Pedro" } },
function(err, documentos) {
if (err) {
res.send(err);
} else {
res.send(documentos);
}
}
);
}
Relacciones entre colecciones
Vamos a crear una relación entre dos colecciones de mongo, una llamada usuarios y otra llamada cuentasBancarias, donde cada usuario tendra una sola cuenta, y cada cuenta pertenecera a un usuario.
Se requiere que cada documento tipo cuenta posea una referencia en uno de sus campos a un documento tipo usuario.
Para ello debemos crear una
referencia a usuario en cada campo del documento tipo cuenta.
Tenemos dos tipos de referencias:
Referencias manuales:
Son las que se usan colocando el
valor de _id de un documento en el campo de otro documento. Luego, si se
desea obtener el documento asociado al _id se debe realizar una segunda
consulta a la base de datos usando la información de dicho valor.
Creamos la colección usuarios de la siguiente manera:
db.usuarios.insert([
{
"dni" : "23",
"nombre" : "javier",
"primerApellido" : "heras",
"segundoApellido" : "lopez"
},
{
"dni" : "22",
"nombre" : "Juan",
"primerApellido" : "Garcia",
"segundoApellido" : "Lopez"
}
{
"dni" : "50",
"nombre" : "Pedro",
"primerApellido" : "garcia",
"segundoApellido" : "Garcia"
}
]);
Buscamos los usuarios:
db.usuarios.find({})
{ "_id" : ObjectId("5f0c9b14188faa43fccfa6c2"), "dni" : "23", "nombre" : "javier", "primerApellido" : "heras", "segundoApellido" : "lopez", "__v" : 0 },
{ "_id" : ObjectId("5f0db7be4117ef27a0f51b5d"), "dni" : "22", "nombre" : "Juan", "primerApellido" : "Garcia", "segundoApellido" : "Lopez", "__v" : 0 },
{ "_id" : ObjectId("5f0dbdca631f6a05d06675c6"), "dni" : "50", "nombre" : "Pedro", "primerApellido" : "garcia", "segundoApellido" : "Garcia", "__v" : 0 }
Mongo ha asignado los valores _id como tipo ObjectId y
lo hace automaticamente, pero tambien lo podemos hacer manualmente.
Ahora crearemos la colección cuentas donde introduciremos la relacion a
mano:
var idJavier = ObjectId("5f0c9b14188faa43fccfa6c2")
var idJuan = ObjectId("5f0db7be4117ef27a0f51b5d")
var idPedro = ObjectId("5f0dbdca631f6a05d06675c6")
db.cuentas.insert([
{
"dni" : idJavier,
"id" : "23",
"saldo" : 200
},
{
"dni": idJuan,
"id" : "22",
"saldo" : 400
},
{
"dni": idPedro,
"id" : "50",
"saldo" : 235
}
]);
db.cuentas.find()
{ "_id" : ObjectId("5f0dd65aa166ac5678925f0c"), "dni" : ObjectId("5f0c9b14188faa43fccfa6c2"), "id" : "23", "saldo" : 200 }
{ "_id" : ObjectId("5f0dd65aa166ac5678925f0d"), "dni" : ObjectId("5f0db7be4117ef27a0f51b5d"), "id" : "22", "saldo" : 400 }
{ "_id" : ObjectId("5f0dd65aa166ac5678925f0e"), "dni" : ObjectId("5f0dbdca631f6a05d06675c6"), "id" : "50", "saldo" : 235 }
var cursor = db.cuentas.find({"_id" :
ObjectId("5f0dd65aa166ac5678925f0c")},{"_id":0,
"dni": 1, "saldo": 1});
var cuentas = cursor.hasNext() ? cursor.next() : null;
if (cuentas) {
var id = cuentas.dni
}
db.usuarios.find({"_id":
id}) {
"_id" : ObjectId("5f0c9b14188faa43fccfa6c2"),
"dni" : "23", "nombre" : "javier",
"primerApellido" : "heras", "segundoApellido" : "lopez",
"__v" : 0 }
En la consulta anterior hemos usado una query ({"_id" :
ObjectId("5f0dd65aa166ac5678925f0c ")}) en el método find(), y como
parámetro de projection {"_id":0, "dni": 1,
"saldo": 1}).
En sql seria asi:
SELECT id FROM cuentas WHERE id = "5f0c9b14188faa43fccfa6c2"
Referencias DBRef:
Sirven para representar un documento, las referencias incluyen el nombre de la colección, el valor del campo _id del documento y opcionacionalmente se puede incluir el nombre de la base de datos a la que pertenece la colección.
Un documento DBRef tiene el siguiente formato:
{"$ref": <value>, "$id": <value>, "$db": <value>}
Para usar una referencia tipo DBRef en nuestro caso lo podemos hacer de la siguiente manera:
db.cuentas.insert([
{
"dni" : {"$ref": "usuarios", "$id": ObjectId("5f0c9b14188faa43fccfa6c2")},
"id" : "23",
"saldo" : 200
},
{
"dni": {"$ref": "usuarios", "$id": ObjectId("5f0db7be4117ef27a0f51b5d")},
"id" : "22",
"saldo" : 400
},
{
"dni": {"$ref": "usuarios", "$id": ObjectId("5f0dbdca631f6a05d06675c6")},
"id" : "50",
"saldo" : 235
}
]);
Si realizamos una consulta a nuestra
colección usuarios obtenemos lo siguiente:
db.usuarios.find({})
{ "_id" :
ObjectId("5f0c9b14188faa43fccfa6c2"), "dni" :
"23", "nombre" : "javier",
"primerApellido" : "heras", "segundoApellido" :
"lopez", "__v" : 0 }
{ "_id" :
ObjectId("5f0db7be4117ef27a0f51b5d"), "dni" :
"22", "nombre" : "Juan",
"primerApellido" : "Garcia", "segundoApellido" :
"Lopez", "__v" : 0 }
{ "_id" :
ObjectId("5f0dbdca631f6a05d06675c6"), "dni" :
"50", "nombre" : "Pedro",
"primerApellido" : "garcia", "segundoApellido" :
"Garcia", "__v" : 0 }
JOIN
Lo vamos a hacer mediante el metodo aggregate().
Ejemplo:
db.cuentas.aggregate([{$lookup: {from: "usuarios", localField:
"dni", foreignField: "_id", as: "relacion"
}}]);
{ "_id" :
ObjectId("5f0deb5ca166ac5678925f12"), "dni" :
ObjectId("5f0c9b14188faa43fccfa6c2"), "id" :
"23", "saldo" : 200, "relacion" : [ {
"_id" : ObjectId("5f0c9b14188faa43fccfa6c2"),
"dni" : "23", "nombre" : "javier",
"primerApellido" : "heras", "segundoApellido" :
"lopez", "__v" : 0 } ] }
{ "_id" :
ObjectId("5f0deb5ca166ac5678925f13"), "dni" :
ObjectId("5f0db7be4117ef27a0f51b5d"), "id" :
"22", "saldo" : 400, "relacion" : [ {
"_id" : ObjectId("5f0db7be4117ef27a0f51b5d"),
"dni" : "22", "nombre" : "Juan",
"primerApellido" : "Garcia", "segundoApellido" :
"Lopez", "__v" : 0 } ] }
{ "_id" :
ObjectId("5f0deb5ca166ac5678925f14"), "dni" : ObjectId("5f0dbdca631f6a05d06675c6"),
"id" : "50", "saldo" : 235, "relacion"
: [ { "_id" : ObjectId("5f0dbdca631f6a05d06675c6"),
"dni" : "50", "nombre" : "Pedro",
"primerApellido" : "garcia", "segundoApellido" :
"Garcia", "__v" : 0 } ] }
Estamos diciendo a Mongo que busque los documentos en la colección usuarios cuyo _id coincida con el campo dni de cuentas y los agregue al documento devuelto en un campo nuevo campo llamado relación.
Por ejemplo si usamos mongoose en nodeJS:
DaoUsuario.prototype.getUsuarios = function (callback) {
//Devolvemos una funcion de callback err,mensaje,resultados
//Buscamos los usuarios de la coleccion usuarios
this.usuarios = [];
var sThis = this;
UsuarioData.aggregate([{$lookup: {from: "cuentas", localField: "dni", foreignField: "dni", as: "relacion" }}],function(err,documentos){
if (err){
console.log(err);
}else {
//insertamos los documentos en un array
for (i = 0; i < documentos.length; i++) {
var documento = documentos[i];
var dni = documento.dni;
var nombre = documento.nombre;
var primerApellido = documento.primerApellido;
var segundoApellido = documento.segundoApellido;
usuario = new Usuario();
usuario.setDni(dni);
usuario.setNombre(nombre);
usuario.setPrimerApellido(primerApellido);
usuario.setSegundoApellido(segundoApellido);
var cuenta=documento.relacion[0];
var id = cuenta.id;
var saldo = cuenta.saldo;
var cuenta = new CuentaBancaria();
cuenta.setId(id);
cuenta.setSaldo(saldo);
usuario.setCuenta(cuenta);
sThis.usuarios.push(usuario);
}
callback(err,"La Busqueda fue correcta",sThis.usuarios);
}
});
}
Codigo de prueba de una base de
datos usando mongoDB:
https://github.com/javierheras750/mongoDB
Codigo de prueba de una base de datos usando MySQL:
https://github.com/javierheras750/MySQL