业务对象

对象是什么?

对象是一个映射到数据库表(或使用 MongoDB 时的集合)的配置文件。 你可以通过定义yml文件来创建一个对象:

name: user
fields:
id:
type: number
primary: true
name:
type: string
isActive:
type: boolean

这将创建以下数据库表:

+-------------+--------------+----------------------------+
| user |
+-------------+--------------+----------------------------+
| id | int(11) | PRIMARY KEY AUTO_INCREMENT |
| name | varchar(255) | |
| isActive | boolean | |
+-------------+--------------+----------------------------+

基本对象由列和关系组成。 每个对象必须有一个主列(如果使用 MongoDB,则为 _id 列)。

每个对象都必须在Connection选项中注册,你可以指定包含所有对象的整个目录, 该目录下所有对象都将被加载。

import { createConnection, Connection } from "@steedos/objectql";
const connection: Connection = await createConnection({
type: "mysql",
host: "localhost",
port: 3306,
username: "test",
password: "test",
database: "test",
objectFiles: ["./objects/"]
});

批量查询 find

按指定条件查询记录,并返回记录数组。未找到时返回空数组[]。

查询条件包括以下参数:

  • fields: 字段名数组
  • filters: 查询条件数组
  • sort: 排序规则
  • top: 返回记录数
  • skip: 跳过记录数,通常用于分页显示。
const posts = await connection.getObject("posts").find({
fields: ['name', 'body', 'likesCount'],
filters: [['likesCount', '>', 10], ['likesCount', '<', 20]],
top: 20,
skip: 0,
sort: 'likesCount desc'
});
// SELECT TOP 20 name, body, likesCount
// FROM posts
// WHERE likesCount > 10 AND likesCount < 20
// ORDER BY likesCount desc

查询单条记录 findOne

查询并返回一条记录。

const post = await connection.getObject("posts").findOne('5dcbb48f735bba40b3ebbe1a');
// SELECT * from posts where _id = '5dcbb48f735bba40b3ebbe1a'

插入 insert

插入一条记录,参数为记录内容。返回插入之后的记录,包括_id字段。

const posts = await connection.getObject("posts").insert({
name: 'Hello'
body: 'Hello from samples'
likesCount: 100
});

插入 directInsert

调用方式同 insert,但不执行触发器

更新单条记录 updateOne

参数

  • _id: 需要更新的记录_id
  • doc: 需要更新的记录内容。
const posts = await connection.getObject("posts").updateOne('5dcbb48f735bba40b3ebbe1a', {
name: 'Hello'
likesCount: 100
});
// UPDATE posts set name = 'Hello' and likesCount = 100
// WHERE _id = '5dcbb48f735bba40b3ebbe1a'

批量更新记录 updateMany

参数

  • filters: 查询条件
  • doc: 需要更新的记录内容。
const posts = await connection.getObject("posts").updateMany([['likesCount', '>', '20']], {
likesCount: 20
});
// UPDATE posts set likesCount = 20
// WHERE likesCount > 20

更新记录 directUpdate

调用方式同 updateMany,但不执行触发器

删除单条记录 delete

const posts = await connection.getObject("posts").delete('5dcbb48f735bba40b3ebbe1a');
// DELETE FROM posts WHERE _id = '5dcbb48f735bba40b3ebbe1a'

删除记录 directDelete

调用方式同 directDelete,但不执行触发器

对于华炎魔方有疑问??
微信扫描二维码,我们的技术专家会为您解答。

我们的技术专家拥有十年以上的管理软件开发经验,无论您询问有关华炎魔方的功能、定价、实施或任何其他方面的问题,他们都将随时准备为您提供帮助。

华炎魔方

华炎魔方是新一代低代码平台,基于商业智能和模型驱动,可以按照业务部门的需求,轻松便捷地创建智能化、移动化、个性化的应用程序。

© 2020 华炎软件. 保留所有权利.