內建資料結構
TIP
Koishi 的数据库 API 实际上分为两部分:
- Minato 定义的通用数据库接口,由数据库插件实现
- Koishi 内置数据结构相关的方法,由 Koishi 提供实现
这一页中将仅展示第二部分的内容。另一部分的内容请参见 数据库操作。
内建表
User
- id:
id使用者 ID - name:
string使用者暱稱 - authority:
number权限等级 - permissions:
string[]权限列表 - locales:
string[]語言列表
Binding
- aid:
id使用者 ID - platform:
string平臺名 - pid:
string平台账号
Channel
- platform:
string平臺名 - id:
string平台账号 - assignee:
string受理人 - permissions:
string[]权限列表 - locales:
string[]語言列表
內建實體方法
下列實體方法直接由 @koishijs/core 提供實現。
ctx.database.getUser(platform, id, modifier?)
- platform:
string平臺名 - id:
string使用者識別符號 - modifier:
QueryModifier<User.Field>請求飾詞 - 回返值:
Promise<User>使用者資料
向資料庫請求使用者資料。
ctx.database.setUser(platform, id, data)
- platform:
string平臺名 - id:
string使用者識別符號 - data:
User要修改 / 新增的資料 - 回返值:
Promise<void>
向資料庫修改或新增使用者資料。
ctx.database.getChannel(platform, id, fields?)
- platform:
string平臺名 - id:
string頻道識別符號 - fields:
QueryModifier<User.Field>請求飾詞 - 回返值:
Promise<Channel>頻道資料
向資料庫請求頻道資料。
ctx.database.getAssignedChannels(fields?, platform?, assignees?) 廢棄
- fields:
ChannelField[]請求的欄位,預設為全部欄位 - platform:
string平臺名,預設為全平臺 - assignees:
string[]指派者列表,預設為當前執行的全部機器人 - 回返值:
Promise<Channel[]>頻道資料列表
向資料庫請求被特定機器人管理的所有頻道資料。這裡的兩個引數可以寫任意一個,都可以識別。
ctx.database.setChannel(platform, id, data)
- platform:
string平臺名 - id:
number頻道識別符號 - data:
Channel要修改 / 新增的資料 - 回返值:
Promise<void>
向資料庫修改或新增頻道資料。
Koishi