mfd
v1.0.3
Published
Simple, object-based interaction with SQL.
Downloads
2
Readme
mfd
Simple, object-based interaction with SQL.
Examples
Schema
CREATE TABLE `person` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`first` VARCHAR(128) NULL DEFAULT NULL,
`last` VARCHAR(128) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `friend` (
`source` INT(10) UNSIGNED NOT NULL,
`target` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`source`, `target`),
INDEX `likedBy` (`target`),
CONSTRAINT `friends` FOREIGN KEY (`source`) REFERENCES `person` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT `likedBy` FOREIGN KEY (`target`) REFERENCES `person` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
);
Setup
const MFD = require( "../index.js" );
const mfd = new MFD( {
host: "localhost",
user: "test",
database: "test"
} );
Create
const tim = new mfd.collections.person( { first: "Tim", last: "Smith" } );
await tim.save();
console.log( ( await mfd.query( "person" ).where( { first: "Tim" } ).execute() )[ 0 ] );
> { id: 6, first: 'Tim', last: 'Smith' }
Read
mfd.query( "person" )
.populate( "friends", "friends.target" )
.where( { $or: [ { "person.first": "Robert" }, { "person.first": "Brad" } ] } )
.execute()
.then( results => console.log( results ) ).catch( err => console.error( err ) );
> [ { id: 1,
first: 'Brad',
last: 'Hesse',
friends:
[ { source: 1,
target:
{ id: 2,
first: 'Robert',
last: 'Coe',
friends: [ [Object], [Object], [Object] ] } },
{ source: 1, target: { id: 3, first: 'French', last: 'Boy' } },
{ source: 1, target: { id: 4, first: 'James', last: 'Joe' } } ] },
{ id: 2,
first: 'Robert',
last: 'Coe',
friends:
[ { source: 2,
target:
{ id: 1,
first: 'Brad',
last: 'Hesse',
friends: [ [Object], [Object], [Object] ] } },
{ source: 2, target: { id: 4, first: 'James', last: 'Joe' } },
{ source: 2,
target: { id: 5, first: 'Kiefer', last: 'von Gaza' } } ] } ]
Update
const robert = ( await mfd.query( "person" ).where( { first: "Robert" } ).execute() )[ 0 ];
robert.last = "Coel";
await robert.save();
console.log( ( await mfd.query( "person" ).where( { first: "Robert" } ).execute() )[ 0 ] );
> { id: 2, first: 'Robert', last: 'Coel' }