0.6.0 • Published 7 months ago

kuery v0.6.0

Weekly downloads
33
License
ISC
Repository
github
Last release
7 months ago

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);
// Result: [{ id: 2, name: 'Sven' }, { id: 3, name: 'Christian' }]

const nestedPathKuery = new Kuery({ 'address.street': 'Bellmansgatan' });
const peopleOnMellmansgatan = nestedPathKuery.find(collection);
// Result: [{ id: 1, name: 'Andreas', address: { street: 'Bellmansgatan' }}]

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 }]);
// Result: [{ id: 2 }]

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 }]);
// Result: [{ id: 1 }]

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 }]);
// Result: [{ id: 2 }, { id: 1 }];

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 }]);
// Result: [{ id: 1 }, { id: 2 }]

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 }]);
  // Result: { id: 3, name: 'Christian' }  
} catch (err) {
  // No error
}

try {
  const kuery = new Kuery({ name: 'Andreas' });
  const result = kuery.findOne(collection);
} catch (err) {
  // err.message: 'findOne returned 2 results.'
}

try {
  const kuery = new Kuery({ name: 'Gustav' });
  const result = kuery.findOne(collection);
} catch (err) {
  // err.message: 'findOne returned 0 results.'
}
0.6.0

7 months ago

0.5.4

2 years ago

0.5.5

2 years ago

0.5.3

3 years ago

0.5.2

4 years ago

0.5.1

4 years ago

0.5.0

4 years ago

0.4.0

8 years ago

0.3.4

8 years ago

0.3.3

8 years ago

0.3.2

8 years ago

0.3.1

8 years ago

0.3.0

9 years ago

0.2.0

9 years ago

0.1.6

9 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago