https://github.com/eldoy/configdb
Persistent in-memory database in human readable YAML format.
https://github.com/eldoy/configdb
Last synced: about 1 month ago
JSON representation
Persistent in-memory database in human readable YAML format.
- Host: GitHub
- URL: https://github.com/eldoy/configdb
- Owner: eldoy
- Created: 2021-02-11T15:58:35.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-09-28T00:50:03.000Z (almost 4 years ago)
- Last Synced: 2025-10-15T04:44:02.651Z (9 months ago)
- Language: JavaScript
- Homepage:
- Size: 768 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ConfigDB
In-memory database with MongoDB-like API.
### Install
`npm i configdb`
### Usage
**Require library**
```js
const db = require('configdb')
```
**Create document**
`user` is the name of the model/collection in this example.
```js
const result = db('user').create({ email: 'vidar@example.com' })
// Returns an object with the id
{ id: 'ck2a5xf2c0000okk3dbvz4n3i' }
```
**Update documents**
Updates all matches.
```js
const result = db('user').update({ email: 'vidar@example.com' }, { email: 'hello@example.com' })
// Returns the number of changed documents
{ n: 1 }
```
**Delete documents**
Deletes all matches.
```js
const result = db('user').delete({ email: 'vidar@example.com' })
// Returns the number of deleted documents
{ n: 1 }
```
**Get a single document**
```js
const result = db('user').get({ email: 'vidar@example.com' })
// Returns the document as a javascript object
{ id: 'ck2a5xf2c0000okk3dbvz4n3i', email: 'vidar@example.com' }
```
**Find multiple documents**
All documents.
```js
const result = db('user').find()
// Returns an array of the documents
[{ id: 'ck2a5xf2c0000okk3dbvz4n3i', email: 'vidar@example.com' }]
```
Find all documents by email.
```js
const result = db('user').find({ email: 'vidar@example.com' })
```
Sort ascending by email.
```js
const result = db('user').find({}, { sort: { email: 1 } })
```
Sort descending by email.
```js
const result = db('user').find({}, { sort: { email: -1 } })
```
Find all and skip.
```js
const result = db('user').find({}, { skip: 1 })
```
Find all and limit.
```js
const result = db('user').find({}, { limit: 1 })
```
**Count documents**
```js
const result = db('user').count({ email: 'vidar@example.com' })
// Returns the count as an integer
2
```
**Load collection**
```js
db('user').load([{ email: 'vidar@example.com' }])
```
**Clear collection**
Careful, this will wipe all your data for this collection.
```js
db('user').clear()
```
MIT licensed. Enjoy!