@reliutg/lsdb
v4.9.1
Published
Database powered by localStorage with JSON definition
Downloads
16
Readme
lsdb
Typed localStorage database powered by with JSON definition
Features
- 📦 Tree-shakeable
- ⚡ Fast
- ✨ Lightweight
- ❤️ Strongly typed
Installation
npm i @reliutg/lsdb
With Skypack
no npm install needed!
<script type="module">
import Lsdb from 'https://cdn.skypack.dev/@reliutg/lsdb';
</script>
We’ll start by setting up a database:
const lsdb = new Lsdb('dbname');
Creating list of collections
// Create multiple collections
lsdb.collection(['categories', 'articles']);
// Create single collection
lsdb.collection('categories');
Inserting
lsdb.insert('categories', { title: 'Drinks' });
lsdb.insert('categories', { title: 'Dinner' });
lsdb.insert('categories', { title: 'Breakfast' });
lsdb.insert('articles', { title: 'Coffee', category: 'Drinks' });
lsdb.insertMany('categories', [{ title: 'Drinks' }, { title: 'Dinner' }, { title: 'Breakfast' }]);
Getting data
Get single collection or all collection entries
lsdb.all();
// {categories: Array(2), articles: Array(0)}
lsdb.all('categories');
// [{title: 'Drinks'}, {title: 'Dinner'}, {title: 'Breakfast'}]
Get a list of documents
lsdb.find('categories', {
where: {
category: { $in: ['Drinks'] },
},
});
lsdb.find('articles', {
where: {
category: { $eq: 'Drinks' },
},
});
lsdb.find('articles', {
sort: {
field: 'title',
order: 'asc'
},
limit: 2,
skip: 1,
});
Find Options
| Field | Type | Description | Default | Required |
| ------- | -------- | ----------------------- | ----------- | -------- |
| where
| Object
| Filter by object | undefined
| false
|
| sort
| Object
| Sort by field name | undefined
| false
|
| limit
| number
| Limit number of results | undefined
| false
|
| skip
| number
| Skip number of results | 0
| false
|
Available operators for where
Based on MongoDB query selectors
$eq
- Equal$in
- In$nin
- Not in$ne
- Not equal$gt
- Greater than$gte
- Greater than or equal$lt
- Less than$lte
- Less than or equal
Get a single document matching the query
lsdb.findOne('categories', {
where: {
_id: { $eq: id },
},
});
Updating
Update a single document matching the query
lsdb.update('categories', {
where: {
_id: { $eq: id },
},
});
Removing
Remove a single document matching the query
lsdb.delete('categories', {
where: {
_id: { $eq: id },
},
});
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!