nw-laf

1.1.32 • Public • Published

使用说明

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:{

  }
});
*/

Readme

Keywords

none

Package Sidebar

Install

npm i nw-laf

Weekly Downloads

1

Version

1.1.32

License

ISC

Unpacked Size

24.1 kB

Total Files

3

Last publish

Collaborators

  • nightwhite