Este package esta desactualizado!
Nueva version: https://www.npmjs.com/package/megadb
mega-dtbs es un package que te permite trabajar con una base de datos de forma sencilla.
Contiene multiples metodos para facilitarte el uso de almacenar, recaudar y actualizar datos
Importante / actualizacion
Este package esta desactualizado, por favor usar el megadb (https://www.npmjs.com/package/megadb)
En el caso de que quieras usar tu base de datos de **mega-dtbs** en **megadb**, leer esto: https://www.npmjs.com/package/megadb#convert_megadtbs
Metodos:
- crearDB
- agregar
- obtener
- tiene
- eliminar
- datos
- push
- extract
- sumar
- restar
- ordenar
Instalacion:
npm install mega-dtbs
Ejemplo del requerimiento del package:
const db = require('mega-dtbs');
crearDB(nombre)
Esta funcion te permite crear una especifica base de datos mediante un nombre, si el nombre de la base de datos que pusiste ya existia, lo que hara es devolver
los datos existentes, de lo contrario creara uno.
let niveles = new db.crearDB('niveles')
agregar(clave, valor)
Esta funcion te permite crear datos mediante una clave, tambien te permite actualizar datos existentes por nuevos.
Si quieres crear o actualizar propiedades especificas de un objeto, puedes usar el . seguido del nombre de la propiedad.
Esto retornara una promesa con los nuevos datos.
niveles.agregar('MegaStar', {xp: 0, nivel: 10})
niveles.agregar('MegaStar.xp', 100)
niveles.agregar('MoDeR', 100)
niveles.agregar('MoDeR.datos.monedas', 200)
niveles.agregar('MoDeR.datos.banco', 1000)
niveles.agregar('RatSageM', [])
obtener(clave)
Esta funcion te permite obtener los datos de una clave.
Tambien te permite obtener datos de una propiedad especifica usando el . seguido del nombre de la propiedad.
Esto retornara una promesa con los datos que se obtuvo, de lo contrario retornara null.
niveles.obtener('MegaStar')
niveles.obtener('MegaStar.nivel')
niveles.obtener('MoDeR.datos.banco')
tiene(clave)
Esta funcion te permite verificar si existe una clave en la base de datos.
Tambien te permite verificar una propiedad especifica usando el . seguido del nombre de la propiedad.
Esto retornara true si existe, de lo contrario retornara false.
niveles.tiene('MegaStar')
niveles.tiene('Mario')
niveles.tiene('MegaStar.monedas')
niveles.tiene('MoDeR.datos.monedas')
eliminar(clave)
Esta funcion te permite eliminar una clave de la base de datos.
Tambien te permite eliminar una propiedad especificas usando el . seguido del nombre de la propiedad.
Esto retornara true si se elimino correctamente, de lo contrario retornara false.
niveles.eliminar('MegaStar.xp')
niveles.eliminar('MoDeR.datos.banco')
niveles.eliminar('Mario')
niveles.tiene('MoDeR.datos.banco')
niveles.tiene('MegaStar.xp')
niveles.obtener('MegaStar')
niveles.obtener('MoDeR.datos')
datos()
Esta funcion regresa todas las claves con su respectivo valor de una base de datos.
Esto retornara una promesa con todos los datos.
niveles.datos()
{
"MegaStar": {
nivel: 10
},
"MoDeR": {
"datos": {
"monedas": 100
}
},
"RatSageM": []
}
push(clave, valor)
Esta funcion te permite agregar un elemento a un array.
Tambien te permite agregarlo en una propiedad especifica usando el . seguido del nombre de la propiedad.
Esto retornara una promesa con el array actualizado, de lo contrario si la ruta donde quieres agregarlo no es un array, retornara "Array no encontrado".
niveles.push('RatSageM', 'manzana')
niveles.agregar('MGstar', {items: ["platano"]})
niveles.push('MGstar', 'sandia')
niveles.push('MGstar.items', 'sandia')
Esta funcion te permite remover un elemento de un array.
Tambien te permite remover un elemento en una propiedad especifica usando el . seguido del nombre de la propiedad.
Esto retornara una promesa con el array actualizado, si la ruta donde quieres agregarlo no es un array, retornara "Array no encontrado" y si el array no contiene el valor que pusiste, retornara "elemento {nombre_item} no encontrado"
niveles.extract('MGstar', 'platano')
niveles.extract('MGstar.items', 'platano')
niveles.extract('MGstar.items', 'durazno')
sumar(clave, numero)
Esta funcion te permite sumar una cantidad especifica a una clave, el valor de la clave debe ser un numero.
Tambien te permite sumarlo en una propiedad especifica usando el . seguido del nombre de la propiedad.
Esto retornara una promesa con el valor actualizado, de lo contrario retornara "Numero no encontrado."
niveles.agregar('Nelson', 20)
niveles.sumar('Nelson', 25)
niveles.agregar('Sun.datos.monedas', 10)
niveles.sumar('Sun.datos', 90)
niveles.sumar('Sun.datos.monedas', 90)
restar(clave, numero)
Esta funcion te permite restar una cantidad especifica a una clave, el valor de la clave debe ser un numero.
Tambien te permite restarlo en una propiedad especifica usando el . seguido del nombre de la propiedad.
Esto retornara una promesa con el valor actualizado, de lo contrario retornara "Numero no encontrado."
niveles.restar('Nelson', 40)
niveles.restar('Sun.datos', 100)
niveles.restar('Sun.datos.monedas', 100)
ordenar(clave, valor)
Esta funcion te permite ordenar los valores de una clave de forma descendente.
Tambien te permite ordenar valores tomando como punto referencial una propiedad especifica usando el . seguido del nombre de la propiedad.
Clave y valor reciben dos tipos de valores, un string (cadena de texto) y un booleano (false), el false lo podemos usar cuando se requiera ordenar valores que no sean propiedades de algun objeto (independientemente de la clave), esto mismo tambien puede aplicarse a claves.
Esto retornara una promesa con un array mostrando los datos ordenados, si la ruta que especificaste no existe, retornara null y si los valores que se ordenaran no son numeros, retornara "Los valores no son numeros."
let economia_db = new db.crearDB('economia')
economia_db.agregar('MegaStar', 100)
economia_db.agregar('MoDeR', 40)
economia_db.agregar('ratsagem', 320)
economia_db.ordenar(false, false)
let economia_db = new db.crearDB('economia')
economia_db.agregar('MegaStar', {monedas: 100})
economia_db.agregar('MoDeR', {monedas: 40)}
economia_db.agregar('ratsagem', {monedas: 320)}
economia_db.ordenar(false, "monedas")
let economia_db = new db.crearDB('economia')
let usuarios = {
megastar: {monedas: 10, medallas: 15},
moder: {monedas: 50, medallas: 20},
ratsagem: {monedas: 25, medallas: 5}
}
economia_db.agregar('servidor.datos', usuarios)
{
'datos': {
'megastar': {
'monedas': 10,
'medallas': 15
},
'moder': {
'monedas': 50,
'medallas': 20
},
'ratsagem': {
'monedas': 25,
'medallas': 5
}
}
}
economia_db.ordenar('servidor.datos', "medallas")
[
{clave: 'moder', valor: {monedas: 50, medallas: 20}},
{clave: 'MegaStar', valor: {monedas: 10, medallas: 15}},
{clave: 'ratsagem', valor: {monedas: 25, medallas: 5}}
]
Ejemplo usando algunas funciones:
const db = require('mega-dtbs');
let estadisticas = new db.crearDB('niveles');
let randomXP = Math.floor(Math.random() * 60) + 1;
if(!estadisticas.tiene('MegaStar')) {
estadisticas.agregar('MegaStar', {xp: 0, nivel: 1});
}
estadisticas.obtener('MegaStar').then(datos => {
if((randomXP + datos.xp) >= 50) {
estadisticas.agregar('MegaStar', {xp: 0, nivel: datos.nivel + 1}).then(nuevos_datos => {
console.log(`MegaStar subio al nivel ${nuevos_datos.nivel}!`)
}).catch(err => console.log(err))
}
else{
estadisticas.sumar('MegaStar.xp', randomXP)
}
}).catch(err => console.log(err))
const db = require('mega-dtbs');
let escuela = new db.crearDB('alumnos');
escuela.agregar('MegaStar', {edad: 20, profesion: ['programador']});
escuela.agregar('MoDeR', {edad: 18, profesion: ['programador']});
escuela.agregar('RatSageM', {edad: 25, profesion: ['maestro']});
escuela.datos().then(alumnos => {
for(var alumno in alumnos) {
if(alumnos[alumno].profesion.includes('programador')) {
escuela.push(`${alumno}.profesion`, 'javascript');
continue;
}
escuela.eliminar(`${alumno}`)
}
}).catch(error => console.log(error))
{
"MegaStar": {
"edad": 20,
"profesion": ["programador", "javascript"]
},
"MoDeR": {
"edad": 18,
"profesion": ["programador", "javascript"]
}
}
const db = require('mega-dtbs');
let mercado_db = new db.crearDB('mercado');
let nombres = ['manzana', 'melocoton', 'sandia', 'lechuga']
mercado_db.agregar('frutas', nombres);
mercado_db.obtener('frutas').then(f => {
for(var x = 0; x < f.length; x++) {
if(f[x] == 'lechuga') {
mercado_db.extract('lechuga')
console.log(`La ${f[x]} no es una fruta, acabo de removerlo.`)
break;
}
}
})
{
"frutas": ["manzana", "melocoton", "sandia"]
}
const db = require('mega-dtbs');
let economia_db = new db.crearDB('economia')
let usuarios = {
megastar: {monedas: 10, medallas: 15},
moder: {monedas: 50, medallas: 20},
ratsagem: {monedas: 25, medallas: 5}
}
economia_db.agregar('servidor.datos', usuarios)
economia_db.ordenar('servidor.datos', "monedas").then(nuevos => {
let ranking = []
for(var x = 0; x < nuevos.length; x++) {
ranking.push(`rank #${parseInt(x+1)} | usuario: ${nuevos[x].clave} | monedas: ${nuevos[x].valor.monedas} | medallas: ${nuevos[x].valor.medallas}\n`)
}
})