ccdb-commonjs v2.0.1
Constructable DB
Simple data storage based on JSON format.
This is CommonJS package. if you want to use version for ECMAScript, so welcome
Content
Install
npm i ccdb
Quick start to CCDB:
const {SchemaTypes, Schema, Model, Database} = require("ccdb");
const path = require("path");
const db = new Database(path.join(__dirname, "db"));
const userModelTemp = {
id: {
type: SchemaTypes.number,
required: true
},
name: {
type: SchemaTypes.string,
required: true
}
}
const userSchema = new Schema(userModelTemp);
const Users = new Model("users", userSchema, db.path);
db.addModel(Users.name, Users);
const users = [
{
id: 1,
name: "Joe"
},
{
id: 2,
name: "Steve"
}
]
const writed = Users.write(users);
const getByManyParams = Users.get({id: 1});
console.log(getByManyParams);
Examples
You can see in folder lib/examples
API reference
Database
new Database(dbPath: string)
- main class of database
Parameters
Database.fs
- instance of FS (FileSystem) classDatabase.path
- path where database placedDatabase.models
- object, which contains all added models
Methods
Database.addModel(modelName: String, model: ccdb.Model)
- adds a new model to database and creates a file of model
Model
new Model(name: String, schema: ccdb.Schema, dbPath: String)
- class for making models.
Parameters
Model.fs
- instance of FS classModel.name
- name of modelModel.path
- path where placed databaseModel.schema
- instance of SchemaModel.fullPath
- path where placed database file
Methods
Model.read()
- reads all database file content, includes name and schema of databaseModel.write(data: Array)
- write array of data to databaseModel.get(options: Object)
- get document from database by object of parametersModel.update(options: Object, data: Object, params: {count: Number})
- update document in database, which goted by few parametersModel.delete(options: Object, params: {deleteAll: Boolean, count: Number})
- delete doc/docs by special parameter
Schema
new Schema(template: Object)
- class which makes schemas for models
Parameters
Schema.schema
- template of schema
SchemaField
new SchemaField(field: Object)
- class of schema field
Parameters
SchemaField.type
- value type for validating data; required optionSchemaField.required
- value requires to insert or not; in defaultfalse
SchemaField.defaultValue
- vvalue will insert when no have value to insert; in defaultnull
SchemaField.maxStringLength
- string value length don't be more that specified; default2**53-1
SchemaField.minStringLength
- string value length don't be less that specified; default0
SchemaField.maxNumValue
- number value don't be more that specified; default2**53-1
SchemaField.minNumValue
- number value don't be less that specified; default2**53-1
SchemaField.unique
- one value for one field if true; defaultfalse
FS
new FS()/*(FileSystem)*/
- class for direct control on the database files
Parameters
FS.dbPath
- path where database placed
Methods
FS.createDatabaseFolder(dbPath: String)
- makes a folder, where will be placed dbFS.readDatabaseFile(modelPath: String)
- reads all database fileFS.writeDataToDatabase(modelPath: string, data: Array)
- writes data to database fileFS.addDatabaseFile(modelName: String, modelSchema: ccdb.Schema)
- adds new database fileFS.clearDatabaseData(modelPath: string)
- clears all data in database fileFS.removeDocs(modelPath: string, doc: Object)
- delete all docs from databaseFS.removeDoc(modelPath: string, doc: Object, params: {count: Number})
- delete few documents from database