UNPKG

rdb-demo

Version:
35 lines (30 loc) 1.24 kB
let rdb = require('rdb'); let resetDemo = require('../db/resetDemo'); let Order = rdb.table('_order'); Order.primaryColumn('oId').guid().as('id'); Order.column('oOrderNo').string().as('orderNo'); Order.column('oCustomerId').guid().as('customerId'); let Customer = rdb.table('_customer'); Customer.primaryColumn('cid').guid().as('id'); Customer.column('cName').string().as('name'); Customer.column('cBalance').string().as('balance'); Customer.column('cIsActive').boolean().as('isActive'); let orderCustomerJoin = Order.join(Customer).by('oCustomerId').as('customer'); Customer.hasMany(orderCustomerJoin).as('orders'); let db = rdb('postgres://rdb:rdb@localhost/rdbdemo'); module.exports = async function() { try { await resetDemo(); await db.transaction(async () => { let filter = { sql: 'exists (select 1 from _customer where _customer.cId = oCustomerId and _customer.cBalance > 3000 and _customer.cName LIKE ?)', parameters: ['%o%'] }; let orders = await Order.getMany(filter); let strategy = { customer: null } console.log(await orders.toDto(strategy)); }); } catch (e) { console.log(e.stack); } }();