lsdb
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
lsdb.collection(['categories', 'articles']);
Inserting
lsdb.insert('categories', { title: 'Drinks' });
lsdb.insert('categories', { title: 'Dinner' });
lsdb.insert('categories', { title: 'Breakfast' });
lsdb.insert('articles', { title: 'Coffee', category: 'Drinks' });
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'}]
Available operators
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 list of documents matching the query
lsdb.find('categories', {
where: {
category: { $in: ['Drinks'] },
},
});
lsdb.find('articles', {
where: {
category: { $eq: 'Drinks' },
},
});
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):
Aneesh Relan |
Zymantas Maumevicius |
Nitkalya Wiriyanuparb |
Connor Ruggles |
MAKSS |
Vasiliy Vanchuk |
This project follows the all-contributors specification. Contributions of any kind welcome!