4.9.1 • Published 1 year ago

@reliutg/lsdb v4.9.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

lsdb

CI Issues Forks Stars All Contributors

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

FieldTypeDescriptionDefaultRequired
whereObjectFilter by objectundefinedfalse
sortObjectSort by field nameundefinedfalse
limitnumberLimit number of resultsundefinedfalse
skipnumberSkip number of results0false

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!

4.9.1

1 year ago

4.9.0

1 year ago

4.8.1

3 years ago

4.8.0

3 years ago

4.7.4

3 years ago

4.8.2

3 years ago

4.7.2

3 years ago

4.7.1

3 years ago

4.7.3

3 years ago

4.6.1

3 years ago

4.6.5

3 years ago

4.5.0

3 years ago

4.4.0

3 years ago

4.2.0

3 years ago

4.1.0

3 years ago

4.0.0

3 years ago

3.0.0

3 years ago

2.2.0

3 years ago