nw-laf
v1.1.32
Published
nw for Laf
Downloads
7
Readme
使用说明
Laf引入依赖
『依赖管理』-『添加』-『nw-laf』-『重启服务』
Laf云函数使用
引入nw-laf
import cloud from '@/cloud-sdk' // Laf 0.8
// import cloud from '@lafjs/cloud' // Laf 1.0
// 根据当前使用的Laf版本import其中一个
const nw = require('nw-laf')
const _ = db.command
const $ = _.aggregate
export async function main(ctx: FunctionContext) {
...
数据库
1.新增单条数据(add)
支持自定义_id
/**
* add(单条记录)
* @description insert into dbName (列1, 列2,...) values (值1, 值2,....)
* 注意:使用此函数添加的数据会自动加上_add_time(添加当前时间戳) 和 _add_time_str(当前时间字符串格式)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {String} dataJson (必填)需要添加的数据(json格式)
* @params {Boolean} cancelAddTime (可选,不填默认false)取消自动生成 _add_time 和 _add_time_str 字段
* res 返回值为添加数据的id,添加失败,则返回null
* 调用示例:
res.id = await nw.baseDao.add({
cloud:cloud,
dbName:dbName,
dataJson:{
"name": "张三",
"age": "19"
},
cancelAddTime : true
});
*/
2.批量新增多条数据(add)
支持自定义_id
/**
* adds(多条记录)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {Array(Object)} dataJson (必填)需要添加的数据(json数组格式)
* @params {String} cancelAddTime (可选,不填默认false)取消自动生成 _add_time 和 _add_time_str 字段
* res 返回值为添加数据的id,添加失败,则返回null
* 调用示例:
res.id = await nw.baseDao.adds({
cloud:cloud,
dbName:dbName,
dataJson:[{
"name": "张三",
"age": "19"
},{
name": "李四",
"age": "20"
}]
});
*/
3.根据条件删除记录(del)
/**
* del(根据条件删除记录)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {String} whereJson (可选)条件
* res 返回值为删除的记录数量
* 调用示例:
res.num = await nw.baseDao.del({
cloud:cloud,
dbName:dbName,
whereJson:{
name:"张三"
}
});
*/
4.根据条件批量修改记录(update)
/**
* update(根据条件修改记录)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {String} whereJson (可选)条件
* res 返回值为受影响的行数
* 调用示例:
let time = new Date()
res.num = await nw.baseDao.update({
cloud:cloud,
dbName:dbName,
whereJson:{
_add_time: _.gte(time).lte(time + 1000),
},
dataJson:{
num:_.inc(1)
}
});
*/
5.根据条件分页查询记录(select)
/**
* select(根据条件查询记录)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {Number} pageIndex (可选,默认1)第几页
* @params {Number} pageSize (可选,默认10)每页显示数量
* @params {Object} whereJson (可选)条件
* @params {Object} fieldJson (可选)字段显示规则,只能指定要返回的字段或者不要返回的字段
* @params {Array(Object)} sortArr (可选)排序规则
* res 返回值
* @params {Number} code 0代表查询成功
* @params {Array(Object)} rows 列表
* @params {Boolean} hasMore 分页需要 true 还有下一页 false 无下一页
* @params {Number} pageIndex 当前所在页数
* @params {Number} pageSize 每页显示数量
* 调用示例:
res = await nw.baseDao.select({
cloud:cloud,
dbName:dbName,
pageIndex:1,
pageSize:100,
whereJson:{
_add_time: _.gte(time).lte(time+1000),
},
fieldJson: {
_id: true,
name: true,
},
sortArr:[{ name: "_add_time",type: "asc" },{ name: "_id",type: "desc" }]
});
*/
6.万能联表查询(selects)
/**
* selects(万能联表,多表连查)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {Object} whereJson (可选)主表where条件
* @params {Number} pageIndex (可选,默认1)第几页
* @params {Number} pageSize (可选,默认10)每页显示数量
* @params {Number} getCount (可选,默认false)true返回关联查询前主表查询总数量,false返回rows的数量
* @params {Object} fieldJson (可选)主表字段显示规则,只能指定要返回的字段或者不要返回的字段
* @params {Array(Object)} sortArr (可选)主表排序规则
* @params {Array(Object)} foreignDB (可选)连表规则
* foreignDB 参数说明 数组内每一个对象代表一个连表规则
* @params {String} dbName (必填)副表表名
* @params {String} localKey (必填)主表外键名
* @params {String} foreignKey (必填)副表外键名
* @params {Number} limit (可选)关联查询的数量,1时为对象,大于1为数组
* @params {String} as (必填)副表连表结果的别名
* @params {Object} whereJson (可选)副表 where 条件
* @params {Object} fieldJson (可选)副表字段显示规则
* @params {Array(Object)} sortArr (可选)副表排序规则
* res 返回值
* @params {Number} code 0代表查询成功
* @params {Number} total getCount为true返回关联查询前主表查询总数量,false返回rows的数量
* @params {Array(Object)} rows 列表
* @params {Boolean} hasMore 分页需要 true 还有下一页 false 无下一页
* @params {Number} pageIndex 当前所在页数
* @params {Number} pageSize 每页显示数量
* 调用示例:
res = await nw.baseDao.selects({
cloud:cloud,
dbName: "users",
getCount: false,
pageIndex: 1,
pageSize: 10,
// 主表where条件
whereJson: {
},
// 主表字段显示规则
fieldJson: {
token: false,
password: false,
},
// 主表排序规则
sortArr: [{ "name": "_id","type": "desc" }],
// 副表列表
foreignDB: [
{
dbName: "order",//副表order
localKey:"_id",
foreignKey: "user_id",
as: "orderList",
limit: 10,
// 副表where条件
whereJson: {},
// 副表字段显示规则
fieldJson: {},
// 副表排序规则
sortArr: [{ "name": "time","type": "desc" }],
},
{
dbName: "vip",//副表vip
localKey:"_id",
foreignKey: "user_id",
as: "vipInfo",
limit: 1,
}
]
});
*/
7.根据 _id 查询记录(findById)
/**
* 根据 _id 查询记录
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {String} id (必填)id
* @params {Object} fieldJson (可选)字段显示规则 只能指定要返回的字段或者不要返回的字段
* res 返回值为单行记录
* 调用示例:
res = await nw.baseDao.findById({
cloud:cloud,
dbName:dbName,
id:_id,
fieldJson: {
_id: true,
name: true,
},
});
*/
8.根据whereJson查询数据(findByWhereJson)
不带分页,分页请用select
/**
* 根据whereJson查询对象
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {Object} fieldJson (可选)字段显示规则 只能指定要返回的字段或者不要返回的字段
* @params {Object} whereJson (可选)查询条件
* res 返回值为单行记录
* 调用示例:
res = await nw.baseDao.findByWhereJson({
cloud:cloud,
dbName:"users",
whereJson:{
nickname:"nw"
},
fieldJson:{
token:true,
password:true,
}
});
*/
9.根据条件查询记录数量(count)
/**
* count(根据条件查询记录数量)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {Object} whereJson (可选)查询条件
* res 返回值为单行记录
* 调用示例:
let num = await nw.baseDao.count({
cloud:cloud,
dbName:dbName,
whereJson:{
}
});
*/
10.根据条件求和(sum)
/**
* sum(根据条件求和)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {Object} whereJson (可选)查询条件
* @params {String} fieldName (必填)需求求和的字段名(比如是数值类型的字段)
* res 返回值为单行记录
* 调用示例:
res = await nw.baseDao.sum({
cloud:cloud,
dbName:dbName,
fieldName:"money",
whereJson:{
}
});
*/
11.根据条件求平均值(avg)
/**
* avg(根据条件求平均值)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {Object} whereJson (可选)查询条件
* @params {String} fieldName (必填)需求平均值的字段名(比如是数值类型的字段)
* res 返回值为单行记录
* 调用示例:
res = await nw.baseDao.avg({
cloud:cloud,
dbName:dbName,
fieldName:"money",
whereJson:{
}
});
*/
12.根据条件求最大值(max)
/**
* max(根据条件求最大值)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {Object} whereJson (可选)查询条件
* @params {String} fieldName (必填)需求平均值的字段名(比如是数值类型的字段)
* res 返回值为单行记录
* 调用示例:
res = await nw.baseDao.max({
cloud:cloud,
dbName:dbName,
fieldName:"money",
whereJson:{
}
});
*/
13.根据条件求最小值(min)
/**
* min(根据条件求最小值)
* @params {Object} event 请求参数
* event 请求参数 说明
* @params {esm} cloud (必填)lafjs-cloud
* @params {String} dbName (必填)表名
* @params {Object} whereJson (可选)查询条件
* @params {String} fieldName (必填)需求平均值的字段名(比如是数值类型的字段)
* res 返回值为单行记录
* 调用示例:
res = await nw.baseDao.min({
cloud:cloud,
dbName:dbName,
fieldName:"money",
whereJson:{
}
});
*/