KV is a simple MongoDB based key value store.
If you're looking for a key value library that supports more than just MongoDB checkout keyv
If you're looking for a CLI checkout this
npm i @qgisk/kv mongoose
Simple quick start example
import {KV} from '@qgisk/kv';
// or for commonjs
const {KV} = require('@qgisk/kv');
// First value is the mongodb uri, the second is your namespace.
// db uri defaults to mongodb://localhost:27017/kv
// namespace defaults to 'kv'
const kv = new KV('uri', 'namespace');
await kv.set('key', 'value');
await kv.get('key'); // value
Using multiple namespaces so you dont get conflicts
const users = new KV(undefined, 'users');
const posts = new KV(undefined, 'posts');
await users.set('one', 'user');
await posts.set('one', 'post');
await users.get('one'); // user
await posts.get('one'); // post
Easily get all values in a namespace
const users = new KV(undefined, 'users');
await users.set('one', 'user');
await users.set('two', 'user');
await users.all(); // [{key: 'users:one', value: 'user'}, {key: 'users:two', value: 'user'}]
Delete key in your current namespace
const users = new KV(undefined, 'users');
await users.del('one', 'user');
await users.get('one'); // undefined
Clear a whole namespace
const users = new KV(undefined, 'users');
await users.set('one', 'user');
await users.clear();
await users.get('one'); // undefined
const kv = new KV('mongodb://123/');
kv.on('error', e => console.log(e));
const kv = new KV(undefined, 'ttl');
await kv.set('test', 'hi', 5000); // 5 seconds
setTimeout(() => console.log(await kv.get('test')), 5000); // undefined
MIT Demian