Skip to content

內建資料結構

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>

向資料庫修改或新增頻道資料。