Rdb Versions Save

The ultimate ORM for Node and Typescript

v3.10.1

6 days ago

Bugfix: Adding hasOne row to existing parent throws. See https://github.com/alfateam/rdb/issues/86

v3.10.0

1 week ago

Now supporting aggregates

You can count records and aggregate numerical columns. This can either be done across rows or separately for each row.
Supported functions include:

  • count
  • sum
  • min
  • max
  • avg

The aggregate function effeciently groups data together. In this particular example , for each customer, it counts the number of lines associated with their orders and calculates the total amount of these lines.
Under the hood, it will run an sql group by customerId and customerName.

import map from './map';
const db = map.sqlite('demo.db');

getAggregates();

async function getAggregates() {
  const orders = await db.order.aggregate({
    where: x => x.orderDate.greaterThan(new Date(2022, 0, 11, 9, 24, 47)),
    customerId: x => x.customerId,
    customerName: x => x.customer.name,
    numberOfLines: x => x.count(x => x.lines.id),
    totals: x => x.sum(x => lines.amount)    
  });
}

v3.9.0

1 week ago

Possible to elevate associated column on a related table to a parent table when fetching. Example with the customer.balance column below.

  const orders = await db.order.getAll({
    balance: x => x.customer.balance
  });

v3.8.0

2 weeks ago

Aggregate operators

  const orders = await db.order.getAll({
    numberOfLines: x => x.count(x => x.lines.id),
    totalAmount: x => x.sum(x => x.lines.amount),
    minAmount: x => x.min(x => x.lines.amount),
    maxAmount: x => x.max(x => x.lines.amount),
    avgAmount: x => x.avg(x => x.lines.amount),
  });

v3.6.2

1 month ago

Bug fix: getMany with orderBy an array throws after v3.6.0

v3.6.1

1 month ago

What's Changed

v3.6.0

2 months ago

Filtering relations

v3.5.2

3 months ago

MssqlNative and SAP ASE: PRINT statements no longer yields error.

v3.5.1

3 months ago