@thasoftschool/softorm
v1.0.5
Published
Lightweight dual SQL + Mongo ORM
Maintainers
Readme
SoftOrm
Lightweight ORM for SQL + MongoDB
Install
npm i softorm
Usage
const createORM = require("@thasoftschool/softorm")
//any one
const mysql = require("mysql2")
const mongoose = require("mongoose")
const sql = mysql.createPool({...}).promise()
await mongoose.connect("mongodb://localhost/db")
const db = createORM({
//any one
sql,
mongo: mongoose.connection
})
const users = await db.users.data.all()
// ===============================
// SHOW (TABLES / COLLECTIONS)
// ===============================
await db.show.tabs
// ===============================
// READ
// ===============================
await db.users.data.all()
await db.users.data.all.limit(10)
await db.users.data.all.count()
await db.users.data.name.all.see("raj")
await db.users.data.id.all.see(5)
await db.users.data.name.exists("raj")
await db.users.data.id.exists(5)
const users = await db.users1.data.all.name.age.isActive()
const onlyNames = await db.users.data.all.name()
// ===============================
// INSERT (SINGLE)
// ===============================
await db.users.save.data({
name: "raj",
age: 21,
isActive: true
})
// ===============================
// UPDATE
// ===============================
// update ALL rows
await db.users.update.data.all({
isActive: true
})
// update by ONE condition
// first key = WHERE
await db.users.update.data.name({
name: "raj",
age: 24,
isActive: true
})
// update by id
await db.users.update.data.id({
id: 5,
addamount: 200
})
// ===============================
// DELETE
// ===============================
// delete ALL
await db.users.data.all.delete()
// delete by field
await db.users.data.name.delete("raj")
// delete by id
await db.users.data.id.delete(5)
// ===============================
// BULK INSERT
// ===============================
await db.users.save.bulk([
{ name: "a", age: 20 },
{ name: "b", age: 21 },
{ name: "c", age: 22 }
])
// ===============================
// BULK UPDATE (MULTI CONDITION)
// ===============================
await db.users.update.bulk({
where: { name: "a", isActive: false },
set: { isActive: true, addamount: 500 }
})
// ===============================
// OTHER TABLE (EXAMPLE)
// ===============================
await db.courses.data.all()
await db.courses.data.price.all.see(499)
await db.courses.save.data({
title: "Node",
price: 499,
isPaid: true
})
data.all() → read all
save.data() → insert one
update.data.all() → update all
update.data.name()→ update by one field
update.bulk() → multiple conditions
delete() → remove data