rhygg / hive-db

A Nodejs key value storage database for mongodb, sqlite and Postgres!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

hive-db

ChangeLog

Hive-db now has interactions based on the adapter you choose, so that you can swiftly use the whole module! Wiki for an in-dept guide

Hive-db

Hive-db is a persistent modular database to store data with ease, rather than complex structures.

Adapters

  1. mongodb -> hive.Mongo
  2. sqlite -> hive.sqlite
  3. postgres -> hive.Postgres

An example of how it looks!

const hive = require('hive-db');
const db = hive.sqlite;
db.init('name',['Lason']);
db.get('name')
// output => Lason

/*
Array Functionality in Hive-db
*/

db.input('name','Tensor')
db.array('name');
// output => Lason, Tensor

Example with a discord.js bot

const Discord = require('discord.js');
const hive = require('hive-db');
const db = hive.sqlite;

 run = async (message, args, client) =>{
 message.channel.send('Enter your name');
 db.init('name', args[0]);
 }

//Trigger function using get.

const Discord = require('discord.js');
const db = require('hive-db');

 run = async (message, args, client) =>{
 message.channel.send('Your name is \t'+db.get('name'));
 }
 /*
 You can do only user based values that are unique for example, to remember
 the name of some users db.init(`name_${message.author.id}`, args[0]), because
 discord user ids are unique, same goes with guild values!
 */

Provided Functions as of now

  1. Initialize your key and value!
db.init('name',['Lason']);
  1. Get the value stored in the key!
db.fetch('name')
  1. Delete a key!
db.del('name')
  1. Input an element into an array value.
db.push('name','Tensor')
  1. Subtract a numeric value from a key storing a numeric value
db.subtract('age',1)
// subtracting 21 from 1, where age(key) contains -> 21
  1. Subtract a numeric value from a key storing a numeric value
db.add('age',1)
// Adding 1 to 21, where age(key) contains -> 21
  1. Fetching all elements as an array
db.fetchArray('name')
// output => Tensor, Lason
  1. Checks if a key stores a value or is null
db.has('name')
// output => true
  1. Outputs the datatype of the stored value in a key.
db.datatype('age')
// output => int

Mongo-Db interaction with Hive-db

You can use both localhost and MongoDb altas uri's to connect to mongodb. Here is an example of its support:-

const hive = require('hive-db');
const mongo= new hive.Mongo("mongodb+srv://wyvern:thebestbot@cluster0.67lsz.mongodb.net", "JSON", { useUnique: true });
mongo.on("ready", () => {
    console.log(`Connected!`);
    test();
});
mongo.on("error", console.error);
mongo.on("debug", console.log);
async function test() {
  mongo.init('age','21');
  mongo.get('age')
  //-> 21
  mongo.init('name','Lason');
  mongo.get('name');
  //-> Lason
}

Creating Tables using hive-db mongo interaction!

const db = require('hive-db');
const mongo= new db.Mongo("mongodb+srv://wyvern:thebestbot@cluster0.67lsz.mongodb.net", "JSON", { useUnique: true });
mongo.on("ready", () => {
    console.log(`Connected!`);
    test();
});
mongo.on("error", console.error);
mongo.on("debug", console.log);
async function test() {
  const test = db.table('test');
  test.init('slogan','hive-db is da best!')
  test.get('slogan');
  // output => hive-db is da best
  // while if we use mongo.get('slogan') it won't work!
  mongo.get('slogan');
  // returns null!
}

Mongo Methods

Initialize a value.

mongo.init("foo", "bar");

Get a value.

mongo.get("foo").then(console.log);
//-> bar

Input a value into an existing array.

mongo.push("name");
// assuming that the key name has an array, for example ["Lason", "Tensor"]

Add a value to a data(number) in a key

mongo.add('age', 4)
// adds 4 to the age

Subtract a value from a data(number) in a key

mongo.subtract('age', 4)
// subtracts 4 from the age

Create data models!

const age = mongo.table('age')
age.init('name', 'Lason')
age.get('name').then(console.log);
// -> Lason!

TIP You can use your own data table using a JSON base. Below stats an example using the key, data structure.

[
{
"ID":"something",
"data":"something"
}
]

Hive-db understands this without any external effort, and you don't even have to call the file anywhere in your code!

db.get("something");
//-> give you something as the output!

Postgres Methods

Yes hive-db offers postgres interaction! Isn't that super cool!

Connecting to the postgres pool:

{Postgres} = require('hive-db');
const db = new Postgres({
   host: 'localhost',
  user: 'postgres',
  password: '1234',
  database: 'myDatabase'
})
/*
Basic paradigm
new Postgres({
  config options, 
  table
})
*/

Create new schemas using the postgres pool!

{Postgres} = require('hive-db');
const db = new Postgres({
   host: 'localhost',
  user: 'postgres',
  password: '1234',
  database: 'myDatabase'
}, {
  schema:'people' //schema name
})

get data

await db.get('peope')

init data

await db.init('people', 'Jack');

delete data

await db.del('people', 'Lason');

push data into an array

await db.push('people', 'Tensor');

Fetch data as an array!

await db.fetchArray('people');
// output => [Jack, Tensor]

Search for a value in a key

await db.search('people','Tensor')
// output => true

Sponsors!

Bytes To Bits

Reminder

The hive-db github repository is the development verision of hive-db.

Also

Check the wiki for a guide.

About

A Nodejs key value storage database for mongodb, sqlite and Postgres!

License:MIT License


Languages

Language:JavaScript 93.2%Language:TypeScript 6.8%