Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timoj/chaindb
Simple Javascript Database with chained-queries
https://github.com/timoj/chaindb
chained database js query simple
Last synced: about 19 hours ago
JSON representation
Simple Javascript Database with chained-queries
- Host: GitHub
- URL: https://github.com/timoj/chaindb
- Owner: timoj
- License: mit
- Created: 2018-05-25T18:06:53.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-02-16T10:25:46.000Z (almost 5 years ago)
- Last Synced: 2025-01-22T09:39:55.590Z (11 days ago)
- Topics: chained, database, js, query, simple
- Language: JavaScript
- Size: 19.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# ChainDB - Simple Javascript Database
[![Build Status](https://travis-ci.org/timoj/chaindb.svg?branch=master)](https://travis-ci.org/timoj/chaindb)## Introduction
ChainDB is a simple javascript database with chained-querying support.## Installation
`npm install --save chaindb`
Settings:
- indexAtInsert: default true, if false: rows will be indexed by the optimize task, on a later moment
- maxRows: default 51000000, max number of rows allowed to be stored in the database.
- optimizerInterval: default 500, the interval in which the optimize task is triggered, in millisecondsSettings can be changed in the following way:
`ChainDB.settings.optimizerInterval = xxx;`
## Usage### Creating a table
A table is a collection, it has a name, which has to be unique, and a set of column names, which have to be unique to that table
`ChainDB.createTable("Users", ["name", "age"]);`You can also give a list of columns that need to be indexed. The values of these columns will be indexed for faster querying:
`ChainDB.createTable("Users", ["name", "age"]);`
_Note that you should only index columns that hold a small value such as number values or short string values._### Inserting data
Inserting a single row:
`ChainDB.insert("Users", {name: "User1", age: 24});`Inserting in bulk:
`ChainDB.insertBulk("Users", [{name: "User2", age: 32},{name: "User3", age: 24}]);`### Querying
Example:
```
var query = new ChainDB.Query();
var users = query.select(["name", "age"])
.from("Users")
.whereColumnEquals("age", 24)
.whereColumnMeets("name", function (name) {
return (name.slice(-1) === "3")
})
.getResults();
```### Removing data
You can remove each result set, by doing the following:
```
var query = new ChainDB.Query();
var users = query.select(["name", "age"])
.from("Users")
.whereColumnEquals("age", 24)
.whereColumnMeets("name", function (name) {
return (name.slice(-1) === "3")
})
.remove();
```