Kuery
Purpose
Simple MongoDB like queries with lodash for in-memory filtering of documents.
Installation
npm i kuery
Usage
import Kuery from 'kuery';
const collection = [
{ id: 1, name: 'Andreas', address: { street: 'Bellmansgatan' } },
{ id: 2, name: 'Sven' },
{ id: 3, name: 'Christian' },
{ id: 4, name: 'Emil' }
];
const idListKuery = new Kuery({ id: { $in: [3, 2] } });
const people = idListKuery.find(collection);
const nestedPathKuery = new Kuery({ 'address.street': 'Bellmansgatan' });
const peopleOnMellmansgatan = nestedPathKuery.find(collection);
API
Constructor
Creates a new Kuery constructor with query. Takes a filter query as argument to be executed against provided lists.
const kuery = new Kuery({ id: { $in: [3, 2] } });
Methods
skip
Skips the provided amount of documents from the collection
const kuery = new Kuery({ id: { $in: [1, 2] } });
kuery.skip(1);
const result = kuery.find([{ id: 1 }, { id: 2 }, { id: 3 }]);
limit
Limits the resulted documents to the provided amount
const kuery = new Kuery({ id: { $in: [1, 2] } });
kuery.limit(1);
const result = kuery.find([{ id: 1 }, { id: 2 }, { id: 3 }]);
sort
Sorts the returned documents based on the provided key(s)
const kuery = new Kuery({ id: { $in: [1, 2] } });
kuery.sort({ id: 0 });
const result = kuery.find([{ id: 1 }, { id: 2 }, { id: 3 }]);
find
Returns the documents matching the query in the provided collection
const kuery = new Kuery({ id: { $in: [1, 2] } });
const result = kuery.find([{ id: 1 }, { id: 2 }, { id: 3 }]);
findOne
Returns the document matching the query in the provided collection. Throws an Error if not exactly one document is
found.
const collection = [{ id: 1, name: 'Andreas' }, { id: 2, name: 'Andreas' }, { id: 3, name: 'Christian' }];
try {
const kuery = new Kuery({ name: 'Christian' });
const result = kuery.findOne([{ id: 1 }, { id: 2 }, { id: 3 }]);
} catch (err) {
}
try {
const kuery = new Kuery({ name: 'Andreas' });
const result = kuery.findOne(collection);
} catch (err) {
}
try {
const kuery = new Kuery({ name: 'Gustav' });
const result = kuery.findOne(collection);
} catch (err) {
}