simple.dbms
v1.0.0
Published
A simple file-based dbms
Downloads
15
Maintainers
Readme
SimpleDB
SimpleDB is a lightweight, file-based NoSQL database designed for ease of use and simplicity. It provides basic functionalities for creating, reading, updating, and deleting records. It is ideal for small projects or applications where a full-fledged database might be overkill, like a discord bot.
Features
- File-based database storage
- Schema definition
- Basic CRUD operations (Create, Read, Update, Delete)
- Support for unique and auto-incrementing fields
Installation
To install SimpleDB, use npm:
npm install simple.dbms
Getting Started
Initialize SimpleDB
First, require and initialize SimpleDB with a path to the database file:
const { SimpleDB, Schema, Model } = require('simple.dbms');
const path = require('path');
// Initialize SimpleDB
const db = new SimpleDB(path.resolve(__dirname, 'database.spdb'));
Define a Schema
Create a schema to define the structure of your data:
const userSchema = new Schema({
userId: { type: 'string', unique: true },
balance: { type: 'number', default: 0 }
});
Create a Model
Create a model using the schema and SimpleDB instance:
const UserModel = new Model('users', userSchema, db);
Basic Operations
Creating Records
Insert a new record into the database:
const newUser = { userId: '12345', balance: 100 };
await UserModel.create(newUser);
Finding Records
Find records by querying:
const user = await UserModel.findOne({ userId: '12345' });
console.log(user); // Output: { userId: '12345', balance: 100 }
Updating Records
Update existing records:
await UserModel.update({ userId: '12345' }, { balance: 200 });
Deleting Records
Delete records:
await UserModel.delete({ userId: '12345' });
Advanced Features
Auto-Increment Fields
Define auto-incrementing fields in your schema:
const autoIncrementSchema = new Schema({
id: { type: 'number', autoIncrement: true },
name: { type: 'string' }
});
Unique Fields
Ensure field values are unique:
const userSchema = new Schema({
email: { type: 'string', unique: true }
});
Credits and Support
This package was created by MeowDev7. For support or to join the community, visit our Discord server:
License
MIT License. See the LICENSE file for details.