m-cloud API Documentation - v1.0.1-beta.5
    Preparing search index...

    Class BaseDatabaseServiceAbstract

    数据库服务基类 提供通用的数据库操作方法,继承自 BaseContext 所有自定义数据库服务类都应继承此类

    class UserService extends BaseDatabaseService {
    async getUserById(id: string) {
    return await this.findById('users', id)
    }

    async createUser(userData: Record<string, any>) {
    return await this.add('users', userData)
    }
    }

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    ctx: Context

    请求上下文

    db: Db

    UniCloud 数据库实例

    config: Record<string, unknown>

    配置对象

    service: Record<string, unknown>

    服务层实例

    controller: Record<string, unknown>

    控制器实例

    curl: <T = any>(
        url: RequestURL,
        options?: UrllibRequestOptions,
    ) => Promise<HttpClientResponse<T>>

    HTTP 请求方法(urllib)

    httpclient: HttpClient

    HTTP 客户端

    throw: (_message: string) => never & (
        _code: string | number,
        _message: string,
    ) => never

    错误抛出方法

    version: string

    API 版本

    apiVersion: string

    API 版本号

    no: (_message: string) => never & (
        _code: string | number,
        _message: string,
    ) => never

    错误抛出方法(别名)

    mdb: MdbOperations

    MongoDB 数据库操作工具

    mdbName?: string

    默认集合名称,子类可以重写此属性

    plugin: Record<string, PluginUtility | unknown>

    插件访问器

    Methods

    • Protected

      初始化 mdb 数据库操作工具 创建所有数据库操作方法,包括查询、插入、更新、删除、聚合等

      Parameters

      Returns void

    • Protected

      初始化插件访问器 创建插件代理对象,支持通过 this.plugin.{插件名称} 访问全局挂载的插件和工具函数

      Parameters

      Returns void

    • 从对象中选择指定的属性

      Parameters

      • obj: Record<string, unknown>

        源对象

      • keys: string | string[]

        属性名(可以是字符串或数组)

      Returns Record<string, unknown>

      包含选中属性的新对象

      const obj = { name: 'John', age: 30, city: 'New York' }
      const result = this.pick(obj, 'name age')
      // { name: 'John', age: 30 }

      const result2 = this.pick(obj, ['name', 'age'])
      // { name: 'John', age: 30 }
    • 返回成功的响应

      Parameters

      • Optionaldata: unknown

        响应数据

      • Optionalmessage: string

        响应消息

      Returns { code: number; message: string; data: unknown }

      成功响应对象

      // 返回数据
      this.ok({ id: '1', name: 'John' })
      // { code: 0, message: 'success', data: { id: '1', name: 'John' } }

      // 返回自定义消息
      this.ok({ id: '1' }, '创建成功')
      // { code: 0, message: '创建成功', data: { id: '1' } }

      // 返回空数据
      this.ok()
      // { code: 0, message: 'success', data: null }
    • 获取集合引用

      Parameters

      • collectionName: string

        集合名称

      Returns CollectionReference

      集合引用

    • 查询文档

      Parameters

      • collectionName: string

        集合名称

      • Optionalquery: Record<string, any>

        查询条件,支持 MongoDB 查询语法

      • Optionaloptions: {
            limit?: number;
            offset?: number;
            orderBy?: { field: string; direction: "asc" | "desc" };
            projection?: Record<string, number>;
        }

        查询选项

        • Optionallimit?: number

          限制返回数量

        • Optionaloffset?: number

          偏移量

        • OptionalorderBy?: { field: string; direction: "asc" | "desc" }

          排序选项

          • field: string

            排序字段

          • direction: "asc" | "desc"

            排序方向

        • Optionalprojection?: Record<string, number>

          投影选项

      Returns Promise<Record<string, unknown>[]>

      查询结果

    • 根据ID获取单个文档

      Parameters

      • collectionName: string

        集合名称

      • id: string

        文档ID

      Returns Promise<Record<string, unknown> | null>

      文档数据

    • 添加文档

      Parameters

      • collectionName: string

        集合名称

      • data: Record<string, any>

        文档数据

      Returns Promise<{ id: string; ids?: string[] }>

      添加结果

    • 批量添加文档

      Parameters

      • collectionName: string

        集合名称

      • dataList: Record<string, any>[]

        文档数据列表

      Returns Promise<{ id: string; ids?: string[] }[]>

      批量添加结果

    • 更新文档

      Parameters

      • collectionName: string

        集合名称

      • query: Record<string, any>

        查询条件,支持 MongoDB 查询语法

      • updateData: Record<string, any>

        更新数据

      Returns Promise<{ updated: number }>

      更新结果

    • 根据ID更新文档

      Parameters

      • collectionName: string

        集合名称

      • id: string

        文档ID

      • updateData: Record<string, any>

        更新数据

      Returns Promise<{ updated: number }>

      更新结果

    • 删除文档

      Parameters

      • collectionName: string

        集合名称

      • query: Record<string, any>

        查询条件,支持 MongoDB 查询语法

      Returns Promise<{ deleted: number }>

      删除结果

    • 根据ID删除文档

      Parameters

      • collectionName: string

        集合名称

      • id: string

        文档ID

      Returns Promise<{ deleted: number }>

      删除结果

    • 统计文档数量

      Parameters

      • collectionName: string

        集合名称

      • Optionalquery: Record<string, any>

        查询条件,支持 MongoDB 查询语法

      Returns Promise<number>

      统计结果

    • 查询单个文档

      Parameters

      • collectionName: string

        集合名称

      • query: Record<string, any>

        查询条件,支持 MongoDB 查询语法

      Returns Promise<Record<string, unknown> | null>

      单个文档数据

    • 获取聚合引用

      Parameters

      • collectionName: string

        集合名称

      Returns Aggregation

      聚合引用

    • 分页查询

      Parameters

      • collectionName: string

        集合名称

      • Optionalquery: Record<string, any>

        查询条件,支持 MongoDB 查询语法

      • page: number = 1

        页码(从1开始)

      • pageSize: number = 10

        每页大小

      • Optionaloptions: {
            orderBy?: { field: string; direction: "asc" | "desc" };
            projection?: Record<string, number>;
        }

        查询选项

        • OptionalorderBy?: { field: string; direction: "asc" | "desc" }

          排序选项

          • field: string

            排序字段

          • direction: "asc" | "desc"

            排序方向

        • Optionalprojection?: Record<string, number>

          投影选项

      Returns Promise<PaginatedResult<Record<string, unknown>>>

      分页结果

    • 复杂查询 - 支持 MongoDB 聚合管道查询

      Parameters

      • collectionName: string

        集合名称

      • pipeline: any[]

        聚合管道操作数组

      Returns Promise<Record<string, unknown>[]>

      聚合查询结果

    • 更灵活的查询方法 - 支持更多 MongoDB 操作符

      Parameters

      • collectionName: string

        集合名称

      • Optionalquery: Record<string, any>

        查询条件,完全支持 MongoDB 查询语法

      • Optionalmodifiers: {
            sort?: Record<string, -1 | 1>;
            skip?: number;
            limit?: number;
            projection?: Record<string, number>;
        }

        额外的查询修饰符,如 sort, skip, limit 等

        • Optionalsort?: Record<string, -1 | 1>

          排序选项

        • Optionalskip?: number

          跳过数量

        • Optionallimit?: number

          限制数量

        • Optionalprojection?: Record<string, number>

          投影选项

      Returns Promise<Record<string, unknown>[]>

      查询结果